Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > выравнивание добавляемого компонента в JToolBar


Автор: x8m6 19.6.2010, 14:29
Есть панель инструментов (JToolBar) с уже добавленными в нее кнопками, все они выровнены по левому краю. Мне нужно добавить кнопку, и выровнять ее (только ее) по правому краю. Как это сделать? Пробовал добавить сначала HorizontalGlue а потом свою кнопку, (у кнопки предварительно установил setAligenment(JComponent.Right)) но все равно не получается.

Автор: jk1 19.6.2010, 15:07
Код

JToolBar bar = new JToolBar();
bar.setLayout(new BoxLayout(bar,BoxLayout.LINE_AXIS));
bar.add(new JButton("left"));
bar.add(new JButton("left"));
bar.add(new JButton("left"));
bar.add(Box.createHorizontalGlue());
bar.add(new JButton("right"));

Автор: x8m6 19.6.2010, 16:03
Хорошо, а если вместо одной кнопки текстовое поле:
Код

JToolBar bar = new JToolBar();
bar.setLayout(new BoxLayout(bar,BoxLayout.LINE_AXIS));
bar.add(new JButton("left"));
bar.add(new JTextField(" "));
bar.add(new JButton("left"));
bar.add(Box.createHorizontalGlue());
bar.add(new JButton("right"));


То при добавлении кнопки "right" (или расширении окна) растягивается именно текстовое поле а не подушка. Почему?

Автор: jk1 19.6.2010, 16:30
Цитата

Почему? 

Не могу сказать наверняка. Скорее всего Layout Manager считает что лучше растягивать текстовое поле, чем glue.
Исправить это очень просто:
Код

textField.setMaximumSize(textField.getPreferredSize());

Автор: x8m6 5.7.2010, 18:57
jk1, спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)