在 Java Swing 中定位对象

Positioning objects in Java Swing

我有一个带组合框的简单面板,但组合框有问题,占用太多 space,我似乎无法调整它的大小。

我有代码:

frame.setLayout(new GridLayout(10, 1));
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
panel.add(new JLabel("Type:    "));
JComboBox comboBox1 = new JComboBox(labels);
panel.add(comboBox1);

frame.add(panel);

frame.setSize(550,300);
frame.setVisible(true);

其中 labels 是一个字符串数组,这就是我的 comboBox 处理 运行:

的方式

如果我尝试使用更改组合框的大小 setSize(),好像没什么作用? 因为我仍然得到相同大小的组合框。 有什么想法吗?

也许可以使用 GridBagLayout,它可以让您更好地控制布局,例如...

JPanel panel = new JPanel(new GridBagLayout());
panel.add(new JLabel("Type: "));
panel.add(new JComboBox(new String[]{"This is a test"}));

或者如果您希望组件向左对齐,可能类似于...

JPanel panel = new JPanel(new GridBagLayout());
panel.add(new JLabel("Type: "));
GridBagConstraints gbc = new GridBagConstraints();
gbc.weightx = 1;
gbc.anchor = GridBagConstraints.WEST;
panel.add(new JComboBox(new String[]{"This is a test"}), gbc);

有关详细信息,请参阅 How to Use GridBagLayout