Я пытаюсь получить макет моего 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));
, и высота кнопок была единственной настройкой, она ВСЕ ЕЩЕ сохранила заданную ширину по умолчанию.
Чтобы прояснить любые вопросы, вот как это выглядит (теперь, когда я ' мы закончили), и вы увидите, что кнопки «Найти далее» и «Отмена» имеют разные размеры.