Spec-Zone .ru
спецификации, руководства, описания, API
|
JSeparator
class обеспечивает горизонталь или вертикальную разделительную линию или пустое место. Это обычно используется в меню и панелях инструментов. Фактически, можно использовать разделители, даже не зная это a JSeparator
class существует, так как меню и панели инструментов обеспечивают методы удобства, которые создают и добавляют разделители, настроенные для их контейнеров. Разделители несколько подобны
Вот изображение меню, у которого есть три разделителя, используемые, чтобы разделить меню на четыре группы элементов:
Код, чтобы добавить пункты меню и разделители к меню чрезвычайно прост, сводясь к чему-то вроде этого:
menu.add(menuItem1); menu.add(menuItem2); menu.add(menuItem3); menu.addSeparator(); menu.add(rbMenuItem1); menu.add(rbMenuItem2); menu.addSeparator(); menu.add(cbMenuItem1); menu.add(cbMenuItem2); menu.addSeparator(); menu.add(submenu);
Добавление разделителей на панель инструментов подобно. Можно счесть полный код объясненным в разделах с практическими рекомендациями для меню и панелей инструментов. Если Вы хотите больше управления разделителями в меню и панелях инструментов, можно непосредственно использовать JSeparator
подклассы, которые реализуют их: JPopupMenu. Разделитель и JToolBar.Separator
имеет API для того, чтобы определить размер разделителя.
Можно использовать JSeparator
class непосредственно, чтобы обеспечить разделительную линию в любом контейнере. Следующее изображение показывает GUI, у которого есть разделитель направо от кнопки маркированный Огонь.
Разделители не имеют почти никакого API и чрезвычайно удобны, пока Вы помните одну вещь: В большинстве реализаций у вертикального разделителя есть привилегированный height 0, и у горизонтального разделителя есть привилегированный width 0. Это означает, что разделитель не видим, если Вы или не устанавливаете его привилегированный размер или вставляете его под управлением менеджера по расположению такой как BorderLayout
или BoxLayout
это расширяет это, чтобы заполнить его доступную область дисплея.
У вертикального разделителя действительно есть немного width (и горизонталь немного height), таким образом, следует видеть некоторое пространство, где разделитель. Однако, фактическая разделительная линия не оттягивается, если width и height не оба ненулевые.
Следующий фрагмент кода показывает, как ListDemo соединяет панель, которая содержит вертикальный разделитель. Можно найти полный исходный код для ListDemo в ListDemo.java
.
JPanel buttonPane = new JPanel(); buttonPane.setLayout(new BoxLayout(buttonPane, BoxLayout.LINE_AXIS)); buttonPane.add(fireButton); buttonPane.add(Box.createHorizontalStrut(5)); buttonPane.add(new JSeparator(SwingConstants.VERTICAL)); buttonPane.add(Box.createHorizontalStrut(5)); buttonPane.add(employeeName); buttonPane.add(hireButton); buttonPane.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
Поскольку код показывает, кнопки, разделитель, и текстовое поле вся доля единственный контейнер — a JPanel
экземпляр, который использует слева направо расположение поля. Благодаря менеджеру по расположению (и к факту, что у разделителей есть неограниченные максимальные размеры), разделитель автоматически делается столь же высоким как своя доступная область дисплея.
В предыдущем коде горизонтальные распорки являются невидимыми компонентами, используемыми, чтобы обеспечить пространство вокруг разделителя. Пустая граница с 5 пикселями обеспечивает подушку вокруг панели, и также служит, чтобы препятствовать тому, чтобы разделитель расширился полностью на компонент выше этого и край окна ниже его.
Вот изображение другого GUI, который использует разделитель, на сей раз чтобы поместить разделительную линию между группой средств управления и областью дисплея.
Можно найти, что код в примере индексирует. Вот код, который устанавливает контейнер разделителя:
JPanel panel = new JPanel(new BorderLayout()); ... panel.setBorder(BorderFactory.createEmptyBorder( GAP/2, //top 0, //left GAP/2, //bottom 0)); //right panel.add(new JSeparator(JSeparator.VERTICAL), BorderLayout.LINE_START); panel.add(addressDisplay, BorderLayout.CENTER);
Как в последнем примере, панель использует пустую границу так, чтобы разделитель не расширился полностью на края его контейнера. Размещение разделителя в крайней левой области BorderLayout
- управляемый контейнер делает разделитель столь же высоким как компонент дисплея адреса, это находится в центре контейнера. См., Как Использовать BorderLayout для деталей о том, как работают разметки границы.
API для того, чтобы использовать разделители минимален, так как они не имеют никакого содержания и не отвечают на ввод данных пользователем.
Конструктор или Метод | Цель |
---|---|
освободите addSeparator () (в JToolBar ) |
Добавьте разделитель панели инструментов (который невидим в больше всего, если не все, смотрите и чувства) к текущему концу панели инструментов. Дополнительный параметр определяет размер разделителя. Версия без параметров этого метода использует разделитель с размером значения по умолчанию, как определено текущим стилем. |
(в JMenu ) |
Поместите разделитель в меню. addSeparator метод помещает разделитель в текущий конец меню. insertSeparator метод вставляет разделитель в меню в указанной позиции. |
(в JPopupMenu ) |
Поместите разделитель в текущий конец раскрывающегося меню. |
|
Создайте разделитель. Если Вы не определяете параметр, разделитель является горизонталью. Параметр может быть также SwingConstants.HORIZONTAL или SwingConstants.VERTICAL . |
(в JSeparator ) |
Получите или установите ориентацию разделителя, которая может быть также SwingConstants.HORIZONTAL или SwingConstants.VERTICAL . |
|
Создайте разделитель для использования на панели инструментов. Дополнительный параметр определяет размер разделителя. |
(в JToolBar.Separator ) |
Определите размер разделителя. Более определенно, указанное Dimension используется в качестве минимума разделителя, предпочтенного, и максимальные размеры. |
|
Создайте разделитель для использования в меню. |
Несколько из примеров этого урока используют разделители, обычно в меню. Вот список некоторых из более интересных примеров.
Пример | Где Описано | Примечания |
---|---|---|
ListDemo |
Этот раздел и Как Использовать Списки | Использует вертикальный разделитель в панели, которой управляет горизонтальное расположение поля. |
TextInputDemo |
Этот раздел и Как Использовать Отформатированные Текстовые поля | Использует вертикальный разделитель слева от панели, которой управляет расположение границы. |
MenuDemo |
Этот раздел и Как Использовать Меню | Использование JMenu метод addSeparator помещать разделители в меню. |
ToolBarDemo2 |
Как Использовать Панели инструментов | Использование JToolBar метод addSeparator помещать пространство между двумя видами кнопок. |
Если Вы программируете в JavaFX, см.