JPanel没有显示在另一个JPanel中

时间:2017-02-14 19:23:02

标签: java swing jpanel layout-manager

class ABC extends JFrame {
    public JPanel createGUI()
    {
        JPanel outerPanel = new JPanel();
        outerPanel.setLayout(null);

        JLabel top = new JLabel();
        top.setBounds(40,40,400,30);
        top.setText("Hello World");
        outerPanel.add(top);

        int l = getLength();
        JPanel innerPanel = new JPanel();
        if(l==0)
        {
            innerPanel.setLayout(null);
            JLabel empty = new JLabel("No Data Found");
            empty.setBounds(80,150,300,30);
            innerPanel.add(empty);
        }
        else
        {
            innerPanel.setLayout(new GridLayout(l,4,5,5)); 
            for(int i=0;i<l;i++)
            {
                innerPanel.add(new JLabel("Text1");
                innerPanel.add(new JLabel("Text2");

                JButton b1 = new JButton("Button1");
                innerPanel.add(b1);
                JButton b2 = new JButton("Button2");
                innerPanel.add(b2);
            }          
         }
         outerPanel.add(innerPanel);
         return outerPanel;
    }
}

在上面的代码中,innerPanel没有显示,也没有出现任何错误。任何想法如何显示innerPanel内部的内部窗口。我尝试使用     的getContentPane()。添加(innerPanel)  但它没有用。

1 个答案:

答案 0 :(得分:1)

尝试更改

outerPanel.setLayout(null);

outerPanel.setLayout(new FlowLayout());

或完全删除setLayout调用。