我正在构建一个用于在特定图像上绘制叠加层的swing接口。我有found several examples如何在JPanel上绘制图像,我能够毫无困难地完成这项工作。但是,我希望将此图像保持完全静态,同时在其上方动态绘制叠加层。考虑到这一点,如果我可以将图像设置为面板的永久背景,而不是每次都paintComponent()
重绘图像,那会更好。这将特别有用,因为经常会出现我想在面板上显示removeAll()
图形并重新绘制新图形的情况。
所以我的问题是:有没有办法在JPanel中设置永久背景图像,或者每次调用paintComponent()
时是否需要重新绘制图像?
答案 0 :(得分:2)
将Image
作为Icon / ImageIcon
添加到JLabel
JLabel hasn't implemented any LayoutManager与JFrame(BorderLayout)
或JPanel(FlowLayout)
你必须定义适当的LayoutManager
,接受PreferredSize来自其子女
然后有可访问(几乎几乎)所有方法,如JPanel,因为容器工作
答案 1 :(得分:1)
也许您可以尝试将Jpanel放入另一个Jpanel。您在容器JPanel上绘制图像。然后让你的内在JPanel变得透明。这样,当它上面没有任何对象时,你会看到没有改变的父JPanel的背景。