Изучаем Java

Вы здесь: Главная >> Java-самоучитель >> Класс JButton из пакета javax. swing

Класс JButton из пакета javax. swing


Теперь давайте рассмотрим наиболее часто использующуюся кнопку— класс JButton из пакета javax. swing.

Эта кнопка может содержать пиктограмму (свойство icon), иметь акселератор (свойство mnemonic), она может быть выделенной (свойство selected), может иметь всплывающую подсказку (свойство toolTipText). Кроме того, можно выбирать выравнивание надписи на кнопке (свойства horisontalAlignment и horisontalTextPosition) и определять многие другие ее свойства. Эта кнопка находится в палитре компонентов на вкладке Swing с всплывающей подсказкой javax. swing. JButton.

Также существует кнопка JToggleButton. Она очень похожа на JButton и находится в том же пакете. Ее отличие состоит в том, что эта кнопка может фиксировать нажатое состояние (она будет выглядеть вдавленной). Данная кнопка располагается в секции Swing с всплывающей подсказкой javax. swing. JToggleButton.

Теперь рассмотрим работу с другими элементами управления — флажками и переключателями. В пакете java.awt есть класс Checkbox. Он отвечает и за флажки, и за переключатели. Как отличить флажки от переключателей? Дело в том, что в пакете java. awt есть также класс CheckboxGroup. Этот компонент не представлен визуально и вообще добавляется не в секцию This в окне структуры, а в секцию Other. Он не имеет событий и методов, а имеет лишь два свойства: name (имя компонента) и selectedCheckbox (выбранный переключатель).
А у компонентов Checkbox одно из свойств — checkboxGroup. Если компонент не принадлежит никакой группе, значит, он одиночный — т.е. и флажок, и значение этого свойства у него <none>. Если же значение данного свойства у компонента аналогично названию компонента какой-то группы, то это переключатель.

Перечислим основные свойства компонента Checkbox:

• name — имя компонента;
• constraints — размещение компонента в контейнере;
• checkboxGroup — флажок или переключатель;
• enabled — заблокирован ли элемент управления;
• label — подпись к компоненту;
• state — отмечен ли элемент управления;
• visible — виден ли компонент на экране.

Создадим программу, работающую с этими компонентами. Для этого выполним следующие действия.

1. Создайте проект, аналогичный предыдущему.

2. Добавьте компонент CheckboxGroup, расположенный в секции AWT и имеющий подпись java. awt. CheckboxGroup. Он сразу появится в секции Other.

3. Добавьте 5 компонентов Checkbox. Они расположены в той же секции, что и компонент CheckboxGroup, и имеют подпись java. awt. Checkbox. Сгруппируйте их так, чтобы первые три компонента были вместе, а четвертый и пятый разместите произвольно в форме. Установите у первых трех компонентов значение свойства checkboxGroup в значение checkboxGroupl.
У компонента Check- boxGroupl установите свойство SelectedCheckbox в значение checkboxl. Проверьте также, чтобы у двух других компонентов Checkbox (которые станут флажками) значение свойства CheckboxGroup было равно <none>.

4. Добавьте компонент Button. Значение свойства label пусть будет равно Finish; дважды щелкните на названии метода, который должен реагировать на событие асtionPerformed, и наберите код, приведенный в листинге 8.1.
Как видите, если флажок установлен или переключатель выбран, то значение их свойства State — True, если нет — False. В том случае, когда какой-то флажок установлен, возвращающее значение метода getstate будет True, и тогда выполняется тот блок if, который для этого предусмотрен. Всем компонентам, которые отмечены, при щелчке на кнопке Finish будет даваться надпись True, всем неотмеченным — False.

Листинг 8.1.
Определение свойств компонентов формы

5. Запустите эту программу. Отметьте какие-либо флажки и какой-нибудь переключатель Результат должен получиться похожим на изображение, показанное на рис. 8.4.

Рис. 8.4. Вид формы, описанной в листинге 8.1

Существуют также флажки и переключатели из пакета javax. swing: JCheckbox и jRadioButton. Они тоже имеют различный набор дополнительных свойств (всплывающая подсказка, пиктограмма и др.). Тут, как вы видите, есть разделение флажков и переключателей на классы.

А теперь давайте немножко поиграем "в магазин". Создадим каталог имеющихся в магазине товаров для покупателя, он выберет товары, а затем мы сообщим ему сумму, на которую он выбрал товары. Вот какие действия необходимо выполнить.

1. Создайте приложение, как обычно, только с именем "Shop", аналогичным ему заголовком, а на следующем шаге создания приложения добавьте также строку состояния.

2. Перейдите в режим дизайнера. Создайте два компонента CheckboxGroup, 10 флажков (номера checkbox от 1 до 10: potatoes, carrots, tomatoes, cucumbers, radishes,red currants, black currants, raspberries, strawberries, mango), а также первую группу переключателей (номера от 11 до 15: Pepsi-Cola, Ccca-Cola, Fanta. 7UP, Mountain DEW) и вторую группу переключателей (номера от 16 до 18: STIMCROL PRO-z, DIROL, ORBIT).
Изначально выбранными надо сделать первые номера в группах (т.е. 11-й и 16-й элементы соответственно). Для этого свойство State у 11-го и 16-го элементов надо изменить на True. Первую группу отнесите к checkboxGroupl, вторую— к checkboxGroup2. Также поместите в форму кнопку (java. awt .Button) с надписью "Account".
Щелкните два раза на знакомом вам событии в окне свойств, а в открывшемся окне введите код, приведенный в листинге 8.2.
После объявления компонентов напишите следующее.
private String Message;
private int Account;

Листинг 8.2.
Программа подсчета денег, потраченных на закупку продуктов

Итак, мы создали небольшую работающую программу для подсчета общей суммы потраченных на покупку денег. Представьте, например, что мы купили в магазине картофель, морковь, огурцы, редис, красную смородину, малину, клубнику, фанту и жвачку "DIROL" и хотим узнать, сколько придется заплатить в кассу. Вот результат выполнения подобной программы (рис. 8.5).

Рис. 8.5. Выполнение программы закупки продуктов

Можно было бы создать не приложение, а аплет (он создается почти так же, только нужно воспользоваться схемой создания аплетов). Получится неплохая Web-страница для магазина (хотя и довольно примитивная). О том, как создавать Web-страницы, читайте в следующей части книги.

Внимание, далее мы не будем приводить список основных свойств компонентов. Основные свойства мы рассмотрим на конкретных примерах. Как работать со свойствами, вы уже знаете, а чтобы узнать все свойства того или иного компонента, нужно лишь знать английский язык для чтения документации.


Партнеры сайта