面板不会使用LayoutManager在JFrame中显示

时间:2015-01-11 08:32:22

标签: java swing jpanel layout-manager border-layout

我已经完成了一项学校任务,而且我还没有过于擅长Java ......我正在制作一个borderlayout框架,其中有几个面板,包括一些将从以下交换的面板可见,可见,反之亦然。由于某种原因,我在运行程序时没有显示任何内容。

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

1 个答案:

答案 0 :(得分:1)

可能是程序启动时首先调用构造函数。之后的主要方法。这可能就是它只加载窗口但不加载任何组件的原因。

您可以尝试使用方法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 :)

} }