Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GUI:按钮控件不可见_Java_User Interface_Jframe_Jpanel_Jbutton - Fatal编程技术网

Java GUI:按钮控件不可见

Java GUI:按钮控件不可见,java,user-interface,jframe,jpanel,jbutton,Java,User Interface,Jframe,Jpanel,Jbutton,我在屏幕上显示主菜单时遇到问题。我看不出问题出在哪里。它显示的只是一个空白的JFrame窗口。它没有显示带有按钮的面板 主要类别: public class Main { public static void main(String[] args) { GUIView gui = new GUIView(); } } GUIView类: import javax.swing.*; import java.awt.*; public class GUIView { protecte

我在屏幕上显示主菜单时遇到问题。我看不出问题出在哪里。它显示的只是一个空白的JFrame窗口。它没有显示带有按钮的面板

主要类别:

public class Main {

public static void main(String[] args) {
    GUIView gui = new GUIView();

}
}
GUIView类:

import javax.swing.*;
import java.awt.*;

public class GUIView {
protected JFrame frame;
    public GUIView() {


    frame = new JFrame("Test");
        frame.setVisible(true);
        frame.setSize(500,500);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}
}

主菜单类:

import javax.swing.*;
import java.awt.*;

public class MainMenu extends GUIView {
    private JButton b1, b2, b3;
    private JPanel panel;
    public MainMenu() {
        GridBagLayout gridbag = new GridBagLayout();
        b1 = new JButton();
        b2 = new JButton();
        b3 = new JButton();

    //Button Settings;
    b1.setText("Administrator");
    b2.setText("Program Leader");
    b3.setText("Lecturer");

    //Panel Settings
    panel = new JPanel();
    panel.setLayout(gridbag);
    panel.add(b1);
    panel.add(b2);
    panel.add(b3);
    panel.setVisible(true);
    super.frame.add(panel);
}

}

这样试试

public class Test1 extends JFrame {



    int count;

     public Test1(){

         this.setSize(400,400);
         MyCompo m = new MyCompo();
         this.add(BorderLayout.CENTER,m);
         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     }





     class MyCompo extends JPanel{


         public MyCompo() {
             this.setSize(300,300);
            setComponents();
             //setHandlers();

         }

        public void paintComponent(Graphics g) {

             //setComponents();

         }
         public void setComponents() {

             this.setLayout(new GridLayout(5,4));
             this.add(new Button("1"));
             this.add(new Button("2"));
             this.add(new Button("3"));
             this.add(new Button("4"));
             this.add(new Button("5"));
             this.add(new Button("6"));
             this.add(new Button("7"));
             this.add(new Button("8"));
         }

     }

     public static void main(String[] args){

         EventQueue.invokeLater(new Runnable() {

             public void run() {
                 Test1 t = new Test1();

                 t.setVisible(true);

             }

         });

     }

}

您从未创建MainMenu的实例。要修复此问题,您可以执行以下操作:

public static void main(String[] args) {
   GUIView gui = new MainMenu();
}

您正在构造GUI视图,但不是主菜单