Графические интерфейсы пользователя Java - Тимур Сергеевич Машнин Страница 18
Графические интерфейсы пользователя Java - Тимур Сергеевич Машнин читать онлайн бесплатно
Вместе с Progress Bar вы можете отображать другие компоненты.
Также вы можете отображать несколько индикаторов Progress Bar.
Вы можете повторно использовать индикатор Progress Bar.
Окно Progress Monitor нельзя использовать повторно.
После того, как монитор прогресса решил отобразить диалоговое окно, он не сможет сделать это снова.
Окно Progress Monitor используется, если вам нужен простой способ отображения прогресса в диалоговом окне.
Окно Progress Monitor предоставляет пользователю возможность отклонить диалог во время выполнения задачи.
Также задача может быть отменена с помощью кнопки Cancel окна.
Окно Progress Monitor предоставляет метод setNote, чтобы задача могла предоставить дополнительную информацию о том, что она делает.
Вы можете контролировать появление окна или его не появление в зависимости от времени выполнения задачи с помощью метода setMillisToPopup.
JMenuBar
Тяжеловесные окна верхнего уровня JFrame, JApplet и JDialog могут содержать панель меню горизонтально ниже заголовка окна.
Панель меню представлена классом JMenuBar.
Эта панель меню состоит из различных выборов меню, доступных конечному пользователю.
Кроме того, каждый выбор содержит список опций, который называется раскрывающимся меню.
Выбор меню представлен классом JMenu, а опция в списке представлена классом JMenuItem.
При этом видно, что класс JMenu расширяет класс JMenuItem.
Чем же отличаются выбор меню от опции в списке?
Во-первых, видно, что и тот и другой класс, это просто кнопки.
Но, выбор меню JMenu, в отличие от опции JMenuItem, обеспечивает всплывающее окно, содержащее JMenuItems, которое отображается, когда пользователь выбирает JMenu в панеле JMenuBar.
В дополнение к элементам JMenuItem, меню JMenu также может содержать разделители JSeparator.
По сути, меню представляет собой кнопку с ассоциированным всплывающим меню JPopupMenu.
Когда нажимается «кнопка», появляется всплывающее меню JPopupMenu.
Панель меню создается с помощью конструктора класса и добавляется в окно верхнего уровня методом setJMenuBar.
Затем создается само меню, которое добавляется в панель меню методом add.
Так как панель меню использует компоновку BoxLayout, а метод add позволяет добавлять любой Swing компонент, в панель меню можно добавить заполнитель класса Box, и меню окажется справа.
После создания панели меню и меню, в меню добавляются элементы меню, которые на самом деле содержатся в меню JPopupMenu, появляющемся при нажатии меню.
Элементы меню добавляются в меню методом add.
Туда же можно и добавлять разделители между элементами меню.
При создании элемента меню в нем можно задать текст, изображение, или сразу и то и другое с помощью конструктора класса JMenuItem.
Также, при создании элемента меню можно задать для него горячие клавиши, методом setAccelerator.
При этом горячие клавиши будут отображаться в элементе меню.
К элементу меню обычно присоединяют слушателя событий, который обрабатывает нажатие элемента меню и выполняет действие, для которого этот элемент меню собственно и создавался.
Для меню и элементов меню можно назначить мнемонику или клавиши выбора с помощью метода setMnemonic.
Здесь для меню File мы назначаем комбинацию клавиш Alt + F, при нажатии на которые открывается меню.
Затем мы назначаем мнемонику или клавишу Е для элемента меню Exit.
Чтобы воспользоваться этой клавишей, мы сначала нажимаем Alt + F, то есть открываем меню, а затем нажимаем E и срабатывает этот элемент меню.
В отличие от мнемоники, клавиши акселерации сразу нажимают элемент меню.
Меню и элемент меню также можно создать на основе объекта Action, инкапсулирующего свойства, которые могут быть повторно использованы.
Объект Action может быть использован для разделения функциональности и состояния от самого компонента.
Например, если у вас есть два или более компонента, которые выполняют одну и ту же функцию, можно использовать один объект Action для создания этих компонентов.
Объект Action – это слушатель действий, который обеспечивает не только обработку событий, но также централизованную обработку состояния компонентов, связанных с событием, таких как элементы меню.
Состояние, которое обрабатывается этим действием, включает в себя текст, значок, мнемонику, активацию и выбранный статус.
В этом примере мы создаем действие Action, в котором задаем надпись элемента меню, его клавиши акселерации, и обработчик нажатия элемента меню, в котором мы показываем диалоговое окно подтверждения действия.
Далее мы создаем элемент меню на основе объекта Action и добавляем этот элемент в само меню.
JCheckboxMenuItem и JRadioButtonMenuItem
Помимо простого элемента меню, есть компоненты JCheckboxMenuItem и JRadioButtonMenuItem, представляющие флажок и радиокнопку для добавления в меню.
В этом примере обработчик выбора флажка позволяет динамически добавляет и удалять элементы меню.
Отследить состояние выбора флажка позволяет метод getState.
В этом примере мы создаем две радиокнопки и объединяем их в группу.
Чтобы могла быть выбрана только одна кнопка.
В обработчике событий выбора радиокнопки мы используем команду, присвоенную кнопке, как ее идентификатор при выборе радиокнопки.
JPopupMenu
Всплывающее меню JPopupMenu используется обычно как контекстное меню.
Оно появляется при нажатии правой кнопки мыши на компоненте, к которому привязано.
Для создания всплывающего меню используется конструктор класса, в котором можно указать заголовок меню.
Затем создаются элементы меню, которые добавляются в всплывающее меню.
Для того чтобы всплывающее меню появилось, к компоненту добавляется слушатель событий мыши.
В обработчике этого слушателя, для события мыши вызывается метод isPopupTrigger, который возвращает подтверждение, является ли это событие мыши событием всплывающего меню.
Всплывающие меню запускаются по-разному на разных платформах.
Поэтому событие isPopupTrigger следует проверять как в методе mousePressed, так и в методе mouseReleased для правильной межплатформенной функциональности.
JSpinner и JSlider
Компонент JSpinner работает аналогично компонентам JList и JComboBox, но вместе с компонентом JFormattedTextField.
В компоненте JList и JComboBox пользователь может выбирать ввод из заданного набора значений.
Компонент JSpinner также позволяет использовать этот тип выбора.
Другая половина компонента JSpinner – это форматированное поле JFormattedTextField.
В компоненте JSpinner, как отображать или вводить значение не контролируется средством отображения списка ListCellRenderer, как в JList.
Вместо этого вы получаете форматированное поле JFormattedTextField для ввода и пару стрелок для перемещения по различным значениям, доступным для форматированного поля.
Так как для ввода и отображения в компоненте JSpinner у нас есть форматированное поле JFormattedTextField, мы имеем три предустановленных типа ввода – это список строк, последовательность объектов Number, и последовательность объектов Date.
Для создания компонента JSpinner, сначала создается его модель данных.
Предустановленные модели данных – это SpinnerDateModel, SpinnerListModel, и SpinnerNumberModel.
Эти классы расширяют абстрактный класс AbstractSpinnerModel.
Поэтому, если вы хотите создать свою собственную модель данных, вам нужно создать свою собственную реализацию абстрактного класса AbstractSpinnerModel.
Здесь показано создание модели SpinnerListModel.
Сначала вы создаете массив
Жалоба
Напишите нам, и мы в срочном порядке примем меры.