我正在尝试添加基本的JFrame
,在其中添加JLabel
,JButton
和JTextField
。但是一次只有两件事出现。
我希望所有三个都出现在框架中。
import javax.swing.*;
import java.awt.*;
public class Main {
JFrame f;
JLabel l1;
JButton b1;
JTextField tf1;
public Main(){
f=new JFrame();
l1=new JLabel("This is the new Label");
l1.setBounds(10,20,50,30);
b1=new JButton("Submit");
b1.setBounds(50,70,90,40);
tf1=new JTextField();
tf1.setBounds(70,100,90,40);
f.add(l1);
f.add(b1);
f.add(tf1);
l1.setLayout(new BorderLayout());
f.setVisible(true);
f.setSize(500,500);
f.setLayout(null);
}
public static void main(String[] args) {
new Main();
}
}
答案 0 :(得分:0)
查看以下代码是否适合您。我只在您的代码中更改了这些行:
f.add(l1, BorderLayout.NORTH);
f.add(b1, BorderLayout.SOUTH);
f.add(tf1, BorderLayout.CENTER);
//f.setLayout(null);
完整代码:
import javax.swing.*;
import java.awt.*;
public class Main {
JFrame f;
JLabel l1;
JButton b1;
JTextField tf1;
public Main(){
f=new JFrame();
l1=new JLabel("This is the new Label");
l1.setBounds(10,20,50,30);
b1=new JButton("Submit");
b1.setBounds(50,70,90,40);
tf1=new JTextField();
tf1.setBounds(70,100,90,40);
f.add(l1, BorderLayout.NORTH);
f.add(b1, BorderLayout.SOUTH);
f.add(tf1, BorderLayout.CENTER);
l1.setLayout(new BorderLayout());
f.setVisible(true);
f.setSize(500,500);
//f.setLayout(null);
}
public static void main(String[] args) {
new Main();
}
}
答案 1 :(得分:0)
代码中唯一的错误是:
您在设置框架布局之前放置了f.setVisible(true)。 您在构造函数中的最后几行应为:
f.setLayout(null);
f.setSize(500,500);
f.setVisible(true);
setVisible()仅在进行所有更改后才应调用 想在框架上。
还删除行l1.setLayout()。我不明白您为什么在这里设置标签的布局。