Почему BoxLayout не позволяет мне изменять ширину JButton, но позволяет мне изменять высоту?
Я пытаюсь получить макетJDialog
Для того, чтобы соответствовать определенному виду, который имеет программа, которую я портирую на Java, я использовал несколько LayoutManager прежде с большим успехом, но по какой-то причине я не могу заставить это работать вообще. Моя цель - иметь правую (восточную) сторонуJDialog
содержат кнопки «Найти далее» и «Отмена» в порядке сверху вниз, а затем любые дополнительные пробелы ниже, так что две кнопки всегда находятся в верхней частиJDialog
, но по какой-то причинеBoxLayout
постоянно игнорирует любые попытки изменить (это где я потерял) ширинуJButton
, Кодекс следует.
JButton findNext = new JButton("Find Next");
JButton cancel = new JButton("Cancel");
cancel.setPreferredSize(new Dimension((int)findNext.getPreferredSize().getWidth(),
(int)cancel.getPreferredSize().getHeight()));
JPanel example = new JPanel();
example.setLayout(new BoxLayout(example, BoxLayout.Y_AXIS));
example.add(findNext);
example.add(cancel);
example.add(Box.createGlue());
Что бы я ни пытался,cancel
всегда сохраняет нормальный размер. я пробовалsetMinimumSize()
а такжеsetMaximumSize()
с теми же параметрами, что иsetPreferredSize
без удачи Я даже пыталсяcancel.setPreferredSize(new Dimension(500, 500));
и высота кнопок была единственной корректируемой вещью, она по-прежнему сохраняла заданную по умолчанию ширину.
Чтобы разобраться с любыми вопросами, вот как это выглядит (теперь, когда я закончил), вы увидите, что кнопки «Найти далее» и «Отмена» имеют разный размер.