gpt4 book ai didi

java - 嵌套 JLayeredPane 未正确渲染

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

我正在定义自己的 JLayeredPane 派生类:

public class Decoration extends JLayeredPane {

private int x, y;
private boolean hiDef;
private boolean[] region;

public Decoration(boolean h, int x1, int y1){
super();

setPreferredSize(new Dimension(128, 128));
x = x1;
y = y1;
hiDef = h;

region = selectRegions();

JLabel labelN = new JLabel();
labelN.setIcon(new javax.swing.ImageIcon("./resources/lgTree2.png"));
this.add(labelN, new Integer(1));

this.setOpaque(false)
}
}

然后我尝试将其放入另一个 JLayeredPane 中:

 JPanel panelMain = new JPanel();
panelMain.setLayout(new BorderLayout());
getContentPane().add(panelMain);
JLayeredPane gameGrid = new JLayeredPane();
gameGrid.setLayout(new GridBagLayout());
panelMain.add(gameGrid);
Decoration decor = new Decoration(hiDef, j, k);
gameGrid.add(decor, c, 9);

不幸的是,屏幕上没有绘制任何内容。当我直接添加 JLabel 而不是 JLayeredPane 时,它​​工作得很好。这是因为将 JLayeredPane 嵌套在另一个 JLayeredPane 中,以及将 JLabel 放置在顶级 JLayeredPane 与较低级别 JLayeredPane 中之间有什么不同吗?

最佳答案

通常,JLayeredPane 没有布局管理器,因此您需要负责确保组件的大小和位置。

您尝试使用您选择的布局管理器,或使用子组件的 setBounds

关于java - 嵌套 JLayeredPane 未正确渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33716067/

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