我有一个带有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。 有什么想法吗?
答案 0 :(得分:3)
也许使用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