Как контролировать размер JSeparator?

#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"));