没有出现FlowLayout的JPanel

时间:2014-07-17 21:16:31

标签: java swing jframe jpanel

我使用以下代码在JPanel中放置标签,但JPanel没有出现(相反,只显示空白的JFrame)。

以下是创建JFrame实例的类。

import java.awt.FlowLayout;
import javax.swing.JFrame;

public class Main { 

public static void main(String[] args){

    WindowContents window = new WindowContents();

    window.setSize(600, 400);
    window.setVisible(true);
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

以下是设置JFrame内容的类。

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

public class WindowContents extends JFrame {

JLabel label1;
JLabel label2;
JLabel label3;

JPanel panel1;

public WindowContents(){

    super("Label Display 2.0");

    panel1 = new JPanel();
    panel1.setLayout(new FlowLayout(FlowLayout.CENTER, 40, 40));
    panel1.setVisible(true);

    label1 = new JLabel("Label1");
    panel1.add(label1);

    label2 = new JLabel("Label2");
    panel1.add(label2);

    label3 = new JLabel("Label3");
    panel1.add(label3);


}

}

有没有想法如何让JPanel内容出现?谢谢。

2 个答案:

答案 0 :(得分:4)

  

如何显示JPanel内容?

在框架中添加面板。

public WindowContents(){
    super("Label Display 2.0");
    panel1 = new JPanel();
    ...
    add(panel1);
}

注意:

答案 1 :(得分:0)

您尚未将面板添加到框架中,以下是您的类WindowsContents结束的方式:

    class WindowContents extends JFrame {

    JLabel label1;
    JLabel label2;
    JLabel label3;

    JPanel panel1;

    public WindowContents(){

        super("Label Display 2.0");

        panel1 = new JPanel(new FlowLayout(FlowLayout.CENTER, 40, 40));

        label1 = new JLabel("Label1");
        panel1.add(label1);

        label2 = new JLabel("Label2");
        panel1.add(label2);

        label3 = new JLabel("Label3");
        panel1.add(label3);

        add(panel1);

    }
}

干杯