我想放置几个按钮来检查不同布局管理器之间的差异。但是我编写的代码仅显示一个布局管理器显示的按钮,而另一个布局管理器的按钮根本不显示。我该怎么办?
这是我的代码:
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.*;
public class No2{
public No2() {
JFrame frame=new JFrame("MyFrame");
JPanel MainPanel=new JPanel();
JPanel panel1=new JPanel();
JPanel panel2=new JPanel();
JPanel panel3=new JPanel();
JButton[] btn=new JButton[5];
for (int i = 0; i < btn.length; i++) {
btn[i]=new JButton("Button"+(i+1));
}
frame.add(MainPanel);
MainPanel.setLayout(new GridLayout(3,1));
MainPanel.add(panel1);
MainPanel.add(panel2);
MainPanel.add(panel3);
panel1.setLayout(new FlowLayout());
for (int i = 0; i < btn.length; i++) {
panel1.add(btn[i]);
}
panel1.setLayout(new BorderLayout());
for (int i = 0; i < btn.length; i++) {
panel2.add(btn[i]);
}
panel1.setLayout(new GridLayout());
for (int i = 0; i < btn.length; i++) {
panel3.add(btn[i]);
}
frame.pack();
frame.setVisible(true);
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new No2();
}
}
您每次都将布局设置为panel1
-而不是将不同的布局分配给不同的面板。
您要多次重新添加相同的JButton,因此无法正常工作。您只能将组件添加到one容器。