Почему 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)); и высота кнопок была единственной корректируемой вещью, она по-прежнему сохраняла заданную по умолчанию ширину.

Чтобы разобраться с любыми вопросами, вот как это выглядит (теперь, когда я закончил), вы увидите, что кнопки «Найти далее» и «Отмена» имеют разный размер.

Ответы на вопрос(6)

Ваш ответ на вопрос