使用 LayoutManager 面板不显示在 JFrame 中

Panels don't show in JFrame using LayoutManager

我有一项学校任务,但我还不太擅长 Java...我正在制作一个边框布局框架,其中将有几个面板,其中一些面板将从 not-可见到可见,反之亦然。出于某种原因,当我 运行 程序时没有任何显示。

屏幕:http://prntscr.com/5r2s6s

public class QuizIT extends JFrame {
    public static JFrame Frame;
    public static Welkom Welkom;
    public static Vraag1 Vraag1; 
    public static Vraag2 Vraag2;
    public static Vraag3 Vraag3;
    public static Vraag4 Vraag4;
    public static Vraag5 Vraag5;
    public static Vraag6 Vraag6;
    public static Punten Punten;
    public static Uitleg Uitleg;


public static void main(String[] args){

    // Frame Eigenschappen
    Frame = new JFrame();
    Frame.setSize(500, 500);
    Frame.setLocation(0, 0);
    Frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Frame.setTitle("QuizIT | Naesen Technologies");
    Frame.setVisible(true);

}

public QuizIT(){
    // Layout -> BorderLayout
    setLayout(new BorderLayout());

    // Initialiseren Klassen
    Welkom = new Welkom();
    Uitleg = new Uitleg();
    Vraag1 = new Vraag1();
    Vraag2 = new Vraag2();
    Vraag3 = new Vraag3();
    Vraag4 = new Vraag4();
    Vraag5 = new Vraag5();
    Vraag6 = new Vraag6();
    Punten = new Punten();

    // Panel -> Frame
    Frame.add(Welkom, BorderLayout.CENTER);
    Frame.add(Uitleg, BorderLayout.NORTH);
    Frame.add(Vraag1, BorderLayout.CENTER);
    Frame.add(Vraag2, BorderLayout.CENTER);
    Frame.add(Vraag3, BorderLayout.CENTER);
    Frame.add(Vraag4, BorderLayout.CENTER);
    Frame.add(Vraag5, BorderLayout.CENTER);
    Frame.add(Vraag6, BorderLayout.CENTER);        
    Frame.add(Punten, BorderLayout.SOUTH);

    // Layout -> Bounds
    Uitleg.setBounds(0,0,500,100);
    Welkom.setBounds(0,100,500,300);
    Vraag1.setBounds(0,100,500,300);
    Vraag2.setBounds(0,100,500,300);
    Vraag3.setBounds(0,100,500,300);
    Vraag4.setBounds(0,100,500,300);
    Vraag5.setBounds(0,100,500,300);
    Vraag6.setBounds(0,100,500,300);
    Punten.setBounds(0,400,500,100);

    Uitleg.setBackground(Color.YELLOW);
    Welkom.setBackground(Color.YELLOW);

    // Visibility
    Welkom.setVisible(true); 
    Uitleg.setVisible(true);  
    Vraag1.setVisible(false);
    Vraag2.setVisible(false);
    Vraag3.setVisible(false);
    Vraag4.setVisible(false);
    Vraag5.setVisible(false);
    Vraag6.setVisible(false);
    Punten.setVisible(true);
}
}

可能是程序启动时先调用了构造函数。然后是主要方法。这可能就是为什么它只加载 window 但不加载任何组件的原因。

您可以尝试用 instad 方法替换构造函数,并在 main 方法的最后一行调用该方法。

此代码运行良好。只需将我在方法中编写的内容替换为您的代码即可!

public static void main(String[] args){

// Frame Eigenschappen
Frame = new JFrame();
Frame.setSize(500, 500);
Frame.setLocation(0, 0);
Frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Frame.setTitle("QuizIT | Naesen Technologies");
Frame.setVisible(true);
methodQuizIT();

}

public static void methodQuizIT(){
 NOW THIS CODE EXECUTES :)

} }