JFrame 中带有背景图像的透明 JButton

发布于 2024-11-01 10:14:41 字数 187 浏览 4 评论 0原文

我正在制作一个扩展 JFrame 的类,并在上面有我的自定义背景图像。

我有两个问题。1

)我希望我的背景图像保持固定大小,在最大化时覆盖整个屏幕。我怎样才能做到这一点?

2)我想在框架上添加一个透明按钮和面板,不会干扰我的背景。有什么简单的方法可以做到这一点吗?

非常感谢您的帮助...谢谢

I am making a Class that extends JFrame and have my custom background image on it..

I have two problems..

1) I want my background image to stay fixed sized that covers whole screen when maximized. How can I do that?

2) I want to add a transparent button and panels on the frame that does not disturb my background. Is there any easy way to do that?

help will be greatly appreciated... thank you

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

皇甫轩 2024-11-08 10:14:41

将图像加载到 BufferedImage 中。

添加 ComponentListener 以确定何时调整框架大小。使用帧大小计算缩放并调用 BufferedImage.getScaledImage(xScale, yScale) 获取缩放后的图像。

在你的类中,你应该重写paintBackground()来进行绘画。只需调用 g.drawImage(scaledImage, getWidth(), getHeight(), this) 即可绘制图像。

添加到框架中的任何组件都需要调用 setOpaque(false),以便背景绘制在它们下面。

Load the image into a BufferedImage.

Add a ComponentListener to determine when the frame is resized. Use the frame size to calculate scaling and call BufferedImage.getScaledImage(xScale, yScale) to obtain a scaled image.

In your class you should be overriding paintBackground() to do the painting. Just call g.drawImage(scaledImage, getWidth(), getHeight(), this) to paint the image.

Any components you add to the frame need to call setOpaque(false) so the background gets painted underneath them.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文