在 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
我有一个带组合框的简单面板,但组合框有问题,占用太多 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