在Java Swing中定位对象

时间:2015-12-02 03:33:11

标签: java swing jpanel layout-manager jcombobox

我有一个带有comboBox的简单面板,但是我遇到了comboBox的问题,占用了太多空间,我似乎无法调整它的大小。

我有代码:

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在运行后的样子:

如果我尝试使用更改comboBox的大小 setSize(),它似乎什么都没做? 因为我仍然得到相同大小的comboBox。 有什么想法吗?

1 个答案:

答案 0 :(得分:3)

也许使用GridBagLayout,这会让你对布局有更多的控制,比如......

GridBagLayout

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

或者如果你想让组件对齐左边,可能就像......

Aligned

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