Adding additional JPanels to a JPanel

喜欢而已 提交于 2019-12-06 01:39:45

问题


Rather basic question here guys.

Basically I have code like this:

public SuperPanel() {
    setLayout(new BorderLayout());
    add(panel1(), BorderLayout.NORTH);
    add(panel2(), BorderLayout.CENTER);
    add(panel3(), BorderLayout.SOUTH);
}

And that all works well and good. The problem is that I have another part I wish to add to the center. Just using add(newPanel(), BorderLayout.CENTER) doesn't work, obviously. But you can add JPanels in JPanels, correct?

So I made the following change:

public SuperPanel() {
    setLayout(new BorderLayout());
    add(panel1(), BorderLayout.NORTH);
    add(supersweetpanel(), BorderLayout.CENTER);
    add(panel3(), BorderLayout.SOUTH);
}

With supersweetpanel() being:

public JPanel supersweetpanel() {
    JPanel sswp = new JPanel();
    setLayout(new BorderLayout());
    add(panel2(), BorderLayout.NORTH);
    return sswp;
}

Now it overrides panel1! If I set it to anything else (CENTER, SOUTH, what have you), the first two panels disappear entirely. Help is much appreciated.


回答1:


SuperPanel is likely a subclass of JPanel, right? You are accidentally adding panel2 to this (the SuperPanel), not sswp. Try:

public JPanel supersweetpanel() {
        JPanel sswp = new JPanel();
        sswp.setLayout(new BorderLayout());
        sswp.add(panel2(), BorderLayout.NORTH);
        return sswp;
    }


来源:https://stackoverflow.com/questions/913139/adding-additional-jpanels-to-a-jpanel

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!