我想知道是否有人知道如何显示多个(可能只是2个)BufferedImage
彼此重叠;换句话说,使用BufferedImage.TYPE_INT_ARGB
作为顶部图像我希望能够将一个图像叠加到另一个图像上方,同时仍然能够根据alpha值查看下部图像。
我熟悉显示它们的方式是ImageIcon
附加到JLabel
,即:
JLabel myLabel = new JLabel("");
myLabel.setIcon(new ImageIcon(myBufferedImage));
据我所知,这种方法似乎不利于将BufferedImage
分层,因此我正在寻找另一种方法。
或者,如果您知道一种方法,我可以将图像分层(而不是将图像绘制到另一个图像),同时仍然使用ImageIcon
,这也很棒。
答案 0 :(得分:0)
据我所知,这种方法似乎不利于将BufferedImages分层,因此我正在寻找另一种方法。
您可以将任何组件添加到JLabel,因此您可以向第一个标签添加第二个标签:
JLabel topLabel = new JLabel(...);
topLabel.setSize( topLabel.getPreferredSize();
topLabel.setLocation(10, 10);
myLabel.add( topLabel );
或许更好的方法是使用JLayeredPane
,它允许您将多个组件堆叠在一起。阅读How to Use Layered Panes上的Swing教程中的部分,以获取一个工作示例。