使用 LayoutManager 面板不显示在 JFrame 中
Panels don't show in JFrame using LayoutManager
我有一项学校任务,但我还不太擅长 Java...我正在制作一个边框布局框架,其中将有几个面板,其中一些面板将从 not-可见到可见,反之亦然。出于某种原因,当我 运行 程序时没有任何显示。
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 :)
}
}
我有一项学校任务,但我还不太擅长 Java...我正在制作一个边框布局框架,其中将有几个面板,其中一些面板将从 not-可见到可见,反之亦然。出于某种原因,当我 运行 程序时没有任何显示。
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 :)
} }