有谁知道怎么做? 图像是相同的尺寸,但在一个图像上具有透明度,以便您可以看到背景图标。
tiles[w][h] = new JLabel();
if(tiles[10][15] == tiles[w][h]){
icon2 = new ImageIcon(Map.tileGrid[8][11]);
icon = new ImageIcon(Map.map[w][h]);
top.setIcon(icon2);
bottom.setIcon(icon);
top.setBounds(2, 0, 30, 30);
bottom.setBounds(0, 0, 30, 30);
resources.add(top, new Integer(1));
resources.add(bottom, new Integer(2));
tiles[w][h].add(resources);
}
像这样的东西,因为我没有实现布局管理器是因为它没有显示在我的地图上?
答案 0 :(得分:2)
从组合中构建一个新的ImageIcon:
// create the new image, canvas size is the max. of both image sizes (a and b are ImageIcons)
int w = a.getIconWidth();
int h = a.getIconHeight();
BufferedImage combined = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
// paint both images, preserving the alpha channels
Graphics g = combined.getGraphics();
g.drawImage(a.getImage(), 0, 0, null);
g.drawImage(b.getImage(), 0, 0, null);
ImageIcon result = new ImageIcon(combined);
然后,您可以使用result
作为标签的图标
答案 1 :(得分:1)
您可以根据JLayer (Java7)
您可以使用OverlayLayout
使用JLayeredPane(也许不是很好的方法,但一堆例子是基于的)
JLabel
尚未实施任何LayoutManager
(与JFrame
或JPanel
相比),您必须添加适当的LayoutManager