Я пытаюсь поместить две кнопки в панели с помощью виджетов Swing. В NetBeans IDE, моем JSeparator
border
свойство установлено на (No border)
в области свойств.
Тем не менее, строка появляется. Это не то, что я ожидал бы от объекта разделителя. Я делаю что-то не так? Происходя из среды в Delphi и C# WinForms, я ожидаю находить некоторые причуды в Swing. Но как точно Вы делаете прозрачный разрыв конкретного размера между двумя кнопками в панели? Сделайте я должен играть с разметками и избежать JSeparator
?
Обновление: Это должно быть тривиально, чтобы сделать это с расположением и без любого объекта разделителя. Настолько как дела, что? Я изучаю расположение NetBeans customizer и инспектора свойств и не нахожу способа сделать это. (Ответ: Разметки со Вставками, вместо разделителей.)
Вам следует взглянуть на статические методы утилиты в классе Box
. Их можно использовать для создания фиксированных стоек, которые действуют как невидимые разделители; например,
JPanel pnl = new JPanel(new FlowLayout());
pnl.add(new JButton("Hello"));
pnl.add(Box.createHorizontalStrut(10)); // Fixed width invisible separator.
pnl.add(new JButton("Goodbye");
Это дает более компактный код, чем создание / конфигурирование JPanel
самостоятельно с соответствующими минимальными, максимальными и предпочтительными размерами.
JSeparator
предназначен для использования в качестве видимого разделителя между компонентами.
JSeparator предоставляет компонент общего назначения для реализации разделительных линий - чаще всего используется в качестве разделителя между элементами меню, который разбивает их на логические группы.
Если вы хотите поместить компонент между двумя невидимыми компонентами, просто используйте вместо него JPanel
. Затем установите размер панели с помощью setPreferSize ()
и setMin / MaxSize ()
.
Вам не нужен JSeparator. Большинство макетов позволяют установить зазор (пробел) между компопонентами. И класс Box может быть особенно полезен.