Java JFrame组件

时间:2015-07-26 21:52:25

标签: java swing

我尝试使用按钮,2标签和文本字段创建一个简单的500x500小程序。小程序打开但它只是空白没有组件显示也不会改变颜色。不确定发生了什么或我完全错过了什么。

import java.applet.*;
import java.awt.Color;

import javax.swing.*;

public class Greeting {
private JFrame frame;
private JPanel panel;
private JLabel label1;
private JTextField textbox1;
private JButton button1;
private JLabel label2;

public Greeting(){
    gui();

}

    public void gui(){
        frame = new JFrame("Greeting");
        frame.setVisible(true);
        frame.setSize(500, 500);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);

        panel = new JPanel();
        panel.setBackground(Color.YELLOW);

        label1 = new JLabel ("Please enter your name");
        textbox1 = new JTextField(20);
        button1 = new JButton ("Greet");

        panel.add(label1);
        panel.add(button1);
        panel.add(textbox1);

        frame.getContentPane().add(panel);
        frame.add(panel);
    }

    public static void main(String[] args) {
        new Greeting();

    }

}

1 个答案:

答案 0 :(得分:3)

如果您计划使用所有组件显示frame,请将frame.setVisible(true)行移至方法的末尾:

public void gui() {
    ...
    frame.add(panel);
    frame.setVisible(true);
}

这允许所有组件在显示在屏幕上之前添加到JFrame