JFrame 中带有背景图像的透明 JButton
我正在制作一个扩展 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将图像加载到 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 callBufferedImage.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.