import javax.swing.*;
import java.awt.*;
@SuppressWarnings("serial")
public class Notebook extends JFrame{
public static final int LINES=50;
public static final int CHAR_PER_LINES=40;
public static void main(String args[])
{
new Notebook();
}
public Notebook()
{
JFrame one = new JFrame("学生界面");
JLabel lab1 = new JLabel("学号");
JTextField jtfid1 = new JTextField(10);
JLabel lab2 = new JLabel("姓名");
JTextField jtfid2 = new JTextField(10);
JLabel lab3 = new JLabel("性别");
JTextField jtfid3 = new JTextField(10);
JLabel lab4 = new JLabel("专业");
JTextField jtfid4 = new JTextField(10);
JLabel lab5 = new JLabel("宿舍号");
JTextField jtfid5 = new JTextField(10);
JLabel lab6 = new JLabel("入住时间");
JTextField jtfid6 = new JTextField(10);
JButton b1 = new JButton("添加");
JButton b2 = new JButton("关闭");
GridLayout myCard = new GridLayout(7,1);
one.setLayout(myCard);
one.add(lab1);
one.add(jtfid1);
one.add(lab2);
one.add(jtfid2);
one.add(lab3);
one.add(jtfid3);
one.add(lab4);
one.add(jtfid4);
one.add(lab5);
one.add(jtfid5);
one.add(lab6);
one.add(jtfid6);
one.add(b1);
one.add(b2);
getContentPane().add(one);
this.setBounds(500, 200, 300, 400);
this.setVisible(true);
}
}
有人说是因为在构造方法中重新定义了JFrame导致的,但是我还是不太理解到底是为什么,它的解决方法是什么呢?
改用下面的JPanel就可以显示组件
JLabel lab1 = new JLabel("学号");
JTextField jtfid1 = new JTextField(10);
JLabel lab2 = new JLabel("姓名");
JTextField jtfid2 = new JTextField(10);
JLabel lab3 = new JLabel("性别");
JTextField jtfid3 = new JTextField(10);
JLabel lab4 = new JLabel("专业");
JTextField jtfid4 = new JTextField(10);
JLabel lab5 = new JLabel("宿舍号");
JTextField jtfid5 = new JTextField(10);
JLabel lab6 = new JLabel("入住时间");
JTextField jtfid6 = new JTextField(10);
JButton b1 = new JButton("添加");
JButton b2 = new JButton("关闭");
GridLayout myCard = new GridLayout(7,1);
JPanel p = new JPanel();
p.setLayout(myCard);
p.add(lab1);
p.add(jtfid1);
p.add(lab2);
p.add(jtfid2);
p.add(lab3);
p.add(jtfid3);
p.add(lab4);
p.add(jtfid4);
p.add(lab5);
p.add(jtfid5);
p.add(lab6);
p.add(jtfid6);
p.add(b1);
p.add(b2);
getContentPane().add(p);
this.setTitle("添加学生");
this.setBounds(500, 200, 300, 400);
this.setVisible(true);