У меня есть JPanel, использующий FlowLayout, и Box с компонентами, расположенными вертикально. Что я хочу, так это установить тот же размер ширины других компонентов для кнопки «Удалить столбец». Я пытался изменить размер с помощью линии
removeColumnButton.setPreferredSize(new Dimension(130, 25));
но я могу изменить только размер высоты, а не ширины.
Ниже скриншот панели и кода:
JPanel eastPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 5, 0));
Box eastPanelBox = Box.createVerticalBox();
addNewColumnButton = new JButton("Add New Column");
addNewColumnButton.setAlignmentX(Box.CENTER_ALIGNMENT);
eastPanelBox.add(addNewColumnButton);
eastPanelBox.add(Box.createVerticalStrut(5));
removeColumnButton = new JButton("Remove Column");
removeColumnButton.setAlignmentX(Box.CENTER_ALIGNMENT);
removeColumnButton.setPreferredSize(new Dimension(130, 25));
eastPanelBox.add(removeColumnButton);
eastPanelBox.add(Box.createVerticalStrut(5));
columnField = new JTextField();
columnField.setAlignmentX(Box.CENTER_ALIGNMENT);
columnField.setPreferredSize(new Dimension(130, 25));
eastPanelBox.add(columnField);
eastPanelBox.add(Box.createVerticalStrut(5));
columnListCB = new JComboBox(cBoxModel);
columnListCB.setAlignmentX(Box.CENTER_ALIGNMENT);
eastPanelBox.add(columnListCB);
eastPanelBox.add(Box.createVerticalStrut(5));
calculateColumnButton = new JButton("Calculate Column");
calculateColumnButton.setAlignmentX(Box.CENTER_ALIGNMENT);
eastPanelBox.add(calculateColumnButton);
eastPanel.add(eastPanelBox);
new GridLayout(0, 1, 0, vGap)
, что означает 1 столбец, переменное количество строк. Параметр vGap должен быть целым числом, представляющим вертикальный зазор между компонентами. - person Hovercraft Full Of Eels   schedule 05.05.2014