java - 使用 LayoutManager 面板不显示在 JFrame 中

标签 java swing jpanel layout-manager border-layout

我有一个学校任务,但我还不太擅长 Java...我正在制作一个边框布局框架,其中将有几个面板,其中一些面板将从不可见切换为可见,另一个绕路。由于某种原因,当我运行程序时没有任何显示。

屏幕: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);
}
}

最佳答案

程序启动时可能首先调用构造函数。然后是主要方法。这可能就是为什么它只加载窗口而不加载任何组件。

您可以尝试用 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 - 使用 LayoutManager 面板不显示在 JFrame 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27885297/

相关文章:

Java Repaint - 当从另一个类调用 repaint() 时,JComponet 需要重新绘制类

java - 如何动态添加 JPanel 并使其可点击?

Java swing 键绑定(bind)

java - 如何在不丢弃中间字符串的情况下验证在 EditText 中键入的字符串?

Java位比较,bitset?

Java语法解释

java - 如何将 Neo4j 节点转换为蓝图顶点?

java - 从 JComboBox 渲染器获取工具提示

java - JCombobox 箭头消失

java - 在运行时从另一个 JPanel 中的单独类文件添加自定义 JPanel