Мегаобучалка Главная | О нас | Обратная связь


Приложения на основе окон ( Frames )



2019-08-13 231 Обсуждений (0)
Приложения на основе окон ( Frames ) 0.00 из 5.00 0 оценок




Обратимся к  приложениям на основе окон (форм). В простейшем случае оконные приложения следует создавать самостоятельно, включая операторы для отображения окон (форм), кнопок, списков, меню и других элементов визуального интерфейса. Ниже помещен пример приложения с кнопкой, которая обеспечивает завершение работы программы.

 

package win_lab;

import java.awt.*;

import java.awt.event.*;

 

public class Win_Lab extends Frame implements ActionListener{

 

Button bex=new Button("Exit");

public Win_Lab()

{

super("my window");

setLayout(null);

setBackground(new Color(150,200,100));

setSize(250,250);

add(bex);

bex.setBounds(110,190,100,20);

bex.addActionListener(this);

this.show();

this.setLocationRelativeTo(null);

}

 

public void actionPerformed(ActionEvent ae)

{

if(ae.getSource()==bex)

System.exit(0);

}

public static void main(String[] args)

{

 new Win_Lab();

 }

}

Результат работы этой программы показан на рисунке 140

 

 

Рисунок 140. Приложение на основе окна

 

Приложение содержит  единственный класс, но его объявление расширено:

 

public class lab1_2 extends Frame implements ActionListener

 

Указывается, что класс имеет имя Win_Lab, тип доступа public и расширяет (наследуется от) класс Frame. Класс Frame является стандартным оконным классом. Механизм наследования позволяет расширять одни классы за счет других, автоматически сохраняя методы и члены наследуемого класса с правами доступа типа public (и в ограниченном контексте protected). Приведенное выше объявление позволяет нашему классу Win_Lab автоматически стать оконным классом, скрывая подробности, связанные с прорисовкой и отображением окна. Класс Win_Lab использует интерфейс ActionListener. Выше было указано, что интерфейс – это класс, содержащий только объявления методов без их реализации. Интерфейс ActionListener используется для прослушивания событий от кнопок и меню. Для других элементов используются другие интерфейсы.

Обратимся теперь к структуре класса Win_Lab. Представлено объявление единственной кнопки

          Button bex=new Button("Exit");

Тип кнопки Button. Кнопка имеет программное имя bex. Кнопка не только объявлена, но и создана с помощью конструктора класса Button. В вызове конструктора указывается в качестве параметра название кнопки. Конструктор класса Win_Lab объявлен и реализован следующим образом

 

public Win_Lab()

{

super("my window");

setLayout(null);

setBackground(new Color(150,200,100));

setSize(250,250);

add(bex);

bex.setBounds(110,190,100,20);

bex.addActionListener(this);

this.show();

this.setLocationRelativeTo(null);

}

 

Назначение конструктора – инициализировать форму, т.е. задать размеры, цвет фона, разместить элементы интерфейса и др. Цвет фона задает команда

setBackground(new Color(150,200,100)).

Размеры формы устанавливает команда

setSize(250,250);

Команда

this.show();

делает форму видимой.

Кнопка добавляется на форму командой: add(bex). С помощью команды

bex.setBounds(110,190,100,20);

 

кнопка отображается на форме в требуемой позиции и с указанными размерами (в пискселах). Аргументы задают в данном случае координаты левого верхнего угла кнопки: (110,190), а также ее размеры (ширину и высоту) – 100,20. Прослушиватель (listener) подключается к кнопке командой:

 

bex.addActionListener(this);

 

Прослушиватель позволяет «реагировать» на нажатие кнопки. Если его не подключить, то нажатие на кнопку не вызовет никаких действий. Обработка событий от кнопки (и других элементов, которые «прослушивает» интерфейс  ActionListener, реализуется с помощью метода public void actionPerformed(ActionEvent ae). Аргументом этого метода является объект класса ActionEvent. При обработке события от кнопки выполняется проверка источника события:

 

if(ae.getSource()==bex)

                 System.exit(0);

 

Метод getSource() возвращает программное имя источника события. Если имя источника события совпадает с программным именем кнопки (в нашем примере – это bex), то выполняется завершение приложения (System.exit(0)). Следует заметить, что просто щелчком на иконке  нельзя выполнить ее завершение.

 



2019-08-13 231 Обсуждений (0)
Приложения на основе окон ( Frames ) 0.00 из 5.00 0 оценок









Обсуждение в статье: Приложения на основе окон ( Frames )

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (231)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)