我正在尝试在JFrame上放置5个按钮。第一行应该有四个按钮,第二行应该是第五个按钮。但是这里所有的按钮都显示在一行中,而第五个按钮的一半不在面板中。顺便说一下,如果我使用frame.pack();我的镜框变得比我预期的要小。我不想更改框架的大小。我想在第二行中找到第五个。
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import javax.swing.*;
public class test {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setBounds(100, 100, 529, 300);
frame.getContentPane().setLayout(new GridLayout(1, 0, 0, 0));
JPanel panel = new JPanel();
frame.getContentPane().add(panel);
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
JButton btnNewButton_4 = new JButton("New button");
panel.add(btnNewButton_4);
JButton btnNewButton_3 = new JButton("New button");
panel.add(btnNewButton_3);
JButton btnNewButton = new JButton("New button");
panel.add(btnNewButton);
JButton btnNewButton_1 = new JButton("New button");
panel.add(btnNewButton_1);
JButton btnNewButton_2 = new JButton("New button");
panel.add(btnNewButton_2);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
最佳答案
第一行应有四个按钮,第五个应位于
第二行。
Oracle教程中有关How to use Layout Managers的标准和预订示例
对JPanel使用GridLayout (two rows),但所有JButton的尺寸均相同
使用GridBagLayout,那么每个JButton的大小都不同
不可见的JComponents或空的JLabel可以帮助您进行最复杂的变化