在Java中显示重叠的BufferedImages

时间:2015-02-28 05:56:32

标签: java

我想知道是否有人知道如何显示多个(可能只是2个)BufferedImage彼此重叠;换句话说,使用BufferedImage.TYPE_INT_ARGB作为顶部图像我希望能够将一个图像叠加到另一个图像上方,同时仍然能够根据alpha值查看下部图像。

我熟悉显示它们的方式是ImageIcon附加到JLabel,即:

JLabel myLabel = new JLabel("");
myLabel.setIcon(new ImageIcon(myBufferedImage));

据我所知,这种方法似乎不利于将BufferedImage分层,因此我正在寻找另一种方法。

或者,如果您知道一种方法,我可以将图像分层(而不是将图像绘制到另一个图像),同时仍然使用ImageIcon,这也很棒。

1 个答案:

答案 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教程中的部分,以获取一个工作示例。