如何阻止JTextField在GridLayout中重新调整大小

Pea*_*Gen 3 java layout swing layout-manager

我正在创建一个带网格布局的GUI.我直接添加了JTextFields,JButton和所有内容.举个例子,像这样,

JButton b1 = new JButton("Hello"):
JButton b2 = new JButton("Bye");
JTextField t1 = new JTextField(10);
JTextField t2 = new JTextField(10);

GridLayout grid = new GridLayout(2,2,2,2);

JPanel panel = new JPanel();
panel.setLayout(grid);
panel.add(b1);
panel.add(t1);
panel.add(b2);
panel.add(t2);
Run Code Online (Sandbox Code Playgroud)

在这里,如果用户调整窗口大小,则一切都显得非常大.我知道阻止这些获取这些的唯一另一种方法是添加所有每个和所有内容以分离具有FlowLayout的JPanel.但这不实用,因为如果有20个东西,将有20个JPanels.我尝试设置最大尺寸,最小尺寸和所有,但他们没有改变任何.请帮忙.

mKo*_*bel 5

  1. 使用普通的GridLayout是不可能的,因为这是此布局管理器的基本功能

  2. 使用适当的布局管理器GridBagLayout或今天的MigLayout

  3. 非常简单的方法是使用SpringLayout