南方的Java BorderLayout从不显示自己

时间:2014-03-13 17:53:00

标签: java swing user-interface layout jscrollpane

林'从事计算机科学项目,我遇到了borderlayout的一些问题: 这是我的配置(简化)

public class MainPanel extends JPanel{
    JSplitPane Pcenter;
    JPanel PEnd;

    public MainPanel(Container dad){
        JTable myTable=new JTable(), anotherTable=new JTable();

        JSplitPane left=new JSplitPane();
        left.setTopComponent(new JScrollPane (myTable));
        left.setBottomComponeny(new JScrollPane(anotherTable));
        left.setOrientation(JSplitPane.VERTICAL_SPLIT);

        this.setLayout(new BorderLayout());
        Pcenter=new JSplitPane();
        PEnd=new JPanel();

        pend.add(new JButton("Store"));
        Pcenter.setLeftComponent(left);
        Pcenter.setRightComponent(new JScrollpane(new JLabel("right")));

        this.add(Pcenter,BorderLayout.CENTER);
        this.add(PPnd,BorderLayout.PAGE_END);
        //EDIT:
        PEnd.add(new JLabel("goofy"));
    }
}

现在,我的项目不同了,但这是我的配置

当我运行主要(一个带有JTabbed的jframe,并将其作为选项卡附加)时,它只显示中心而不是结束。但是,如果我在开始时附上PEnd,就必须播种它。

编辑14-3-14 我挖掘了我的代码,我发现myTable的滚动条生成了问题所以删除它会使PEnd显示但是mytable以一种可怕的方式表现自己

1 个答案:

答案 0 :(得分:2)

PEnd,您在PAGE_END添加的面板没有添加任何内容,因此无需显示任何内容,且大小为0。

可能是这行

pend.add(new JButton("Store"));

你的意思

PEnd.add(new JButton("Store"));

作为旁注,您的变量名称应以小写字母开头,以遵循标准Java样式,以区别于类。