首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套JLayeredPane未正确呈现

嵌套JLayeredPane未正确呈现
EN

Stack Overflow用户
提问于 2015-11-15 03:24:35
回答 1查看 119关注 0票数 1

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

代码语言:javascript
复制
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中:

代码语言:javascript
复制
 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中嵌套一个JLabel和在顶级JLayeredPane中放置一个JLabel与在较低级别的JLayeredPane中嵌套有什么不同吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-15 04:44:09

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33716067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档