#java #swing
#java #swing
Вопрос:
Я хочу создать этот интерфейс:
Как вы можете видеть, разделители имеют пользовательский размер, который не охватывает всю ширину родительских элементов, в отличие от того, что я придумал:
Если вы загуглите «Размер JSeparator», то не найдете соответствующих результатов SO. В документах, похоже, отсутствует параметр определения размера (есть что-то, но для JToolBar
).
Я хотел бы контролировать ширину и высоту JSeparator
. Однако, если это невозможно, я открыт для других альтернатив.
Комментарии:
1. Отредактируйте свой вопрос и покажите код, который создает пользовательский интерфейс. Используемый вами LayoutManager здесь будет уместен.
Ответ №1:
Если вас интересуют только визуальные элементы, добавьте дополнение к контейнеру, который заключает элементы. Вы можете использовать JPanel
с EmptyBorder
, однако может быть лучший подход, если вы используете что-то более мощное, чем BoxLayout
:
JPanel p = new JPanel();
p.setBorder(new EmptyBorder(0, 20, 0, 20)); // 20 px on left and right
p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS));
p.add(new JLabel("pic1"));
p.add(Box.createVerticalGlue());
p.add(new JSeparator());
p.add(Box.createVerticalGlue());
p.add(new JLabel("pic2"));