gpt4 book ai didi

java - 添加叠加的 JLabel

转载 作者:行者123 更新时间:2023-11-30 02:32:42 25 4
gpt4 key购买 nike

我正在创建一个 swing 应用程序(我知道 rip),并且想要将 2 个 JLabel 放置在彼此之上。场景如下

游戏是一个岛屿的鸟瞰图,岛屿被分成网格方 block ......现在在每个网格方 block 上,可以有许多 1 项和 1 种动物。我创建了两个 JLabel

JLabel animal = new JLabel();
JLabel item = new JLabel();

然后使用animal.setIcon(...);来设置它们的图像。现在这工作正常,但我想在动物标签上放置一个图像,这样我就可以在同一个网格方 block 上有两个可见的图像。

我正在使用扩展 JPanel 的类中编写以下代码,稍后将其添加到 jframe 中(这是 gridsquare 类)

if(inputItem!= null){
try{
imgItem = ImageIO.read(inputItem);
itemLabel.setIcon(new ImageIcon(imgItem.getScaledInstance(this.getWidth(), this.getHeight(), Image.SCALE_SMOOTH)));
this.add(itemLabel);
}catch(Exception e){
//do something
}
}

所以这工作正常。我也对 inputAnimal 和 imgAnimal 变量做了一些非常类似的事情。只是想知道我如何才能将它们添加到彼此之上。我尝试过简单地按顺序添加它们,但这不起作用。

提前致谢

最佳答案

Now on each of these grid squares, there can be many 1 item and 1 animal. Ive created two JLabels

您可以使用OverlayLayout。它允许您在同一面板上堆叠 Z 轴上的组件。

或者,您可以利用组件之间的 Swing 父/子关系,将一个标签添加到另一个标签,只要父标签使用布局管理器即可:

animal.setLayout(new BorderLayout() );
animal.add( item );
gridSquare.add( animal );

关于java - 添加叠加的 JLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43869164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com