为什么在调用JFrame时我的JPanel不显示?

时间:2018-11-28 17:18:27

标签: java

最初,我在GUI中创建了按钮和JPanel,但是我想将它们从GUI中删除,并为它们创建一个不同的类,因为我必须添加它们。

以下是给我一个问题的以下代码。

问题是我的JPanel没有出现。我将VButtons类扩展到JPanel,假设将JPanel添加到JFrame是可行的,但是没有运气。

有什么建议吗?

public static void vGui()  {
        JFrame frame = new JFrame();
        B b;
        b = new B();
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        frame.setLayout(new BorderLayout());
        frame.add(b, BorderLayout.WEST);
         frame.setVisible(true);
    }





     public static class B extends JPanel {

        B() {

              JPanel Panel1 = new JPanel();
              JRadioButton 1st button = new JRadioButton("1st button");
              JRadioButton 2nd button = new JRadioButton("2nd button");

              Panel1.add(1st button);
              Panel1.add(2nd button);
              Panel1.setLayout(new GridLayout(9,1))


   }




    }

2 个答案:

答案 0 :(得分:0)

VButtons extends JPanel <-这本身是一个JPanel

JPanel Panel1 <-但是您要在Panel1中添加所有内容

panel1刚刚创建并且未使用。

因此,删除Panel1。

只需调用add方法,因为您位于JPanel的子类中。

如果阅读起来更清晰,您可以致电this.add(...)

答案 1 :(得分:0)

您需要使用左侧相交处的顶点来编译右侧,以布置整个网格。如果使用9,1,则顶点不会相交。我喜欢您使用removeVertex的方式,但这是不必要的。