Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Диалоговые окна




Диалоговые окна подобны фрейм-окнам за исключением того, что они – всегда дочерние окна для окна верхнего уровня. Кроме того, диалоговые окна не имеют строки меню. В других отношениях они функционируют подобно фреймовым окнам. Можно, например, добавить к ним элементы управления тем же способом, каким добавляются элементы управления к фреймовому окну. Диалоговые окна могут быть модальными или немодальными. Когда модальное диалоговое окно активно, весь ввод направляется к нему, пока оно не будет закрыто. Это означает, что невозможно обратиться к другим частям программы до тех пор, пока не закрыто диалоговое окно. Когда немодальное диалоговое окно активно, фокус ввода может быть направлен другому окну программы. Таким образом, другие части программы остаются активными и доступными. Диалоговые окна обслуживает класс Dialog. Обычно используются следующие конструкторы класса:

 

Dialog(Frame parentWindow, boolean mode);

Dialog(Frame parentWindow, String title, boolean mode);

parentWindow – владелец диалогового окна. Если mode имеет значение true, диалоговое окно является модальным. Иначе оно немодальное. Заголовок диалогового окна можно передать через параметр title.

 

Следующий пример демонстрирует фреймовое окно с меню, из которого (выбором пунтов меню File→DemoDialog) вызывается модальное диалоговое окно.

Пример 3.8

Листинг Frame1.java

import java.awt.*;

import java.awt.event.*;

public class Frame1 extends Frame

implements ActionListener,WindowListener{

Menu file;MenuItem item1;

public Frame1(){

super("Фреймовое окно с меню");

setSize(500,300);

//создать строку главного меню и добавить его во фрейм

MenuBar mbar=new MenuBar();

setMenuBar(mbar);

//создать элемент меню

file=new Menu("File");

mbar.add(file);

file.add(item1=new MenuItem("DemoDialog"));

item1.addActionListener(this);

setVisible(true);

addWindowListener(this);

}

public void actionPerformed(ActionEvent ae) {

DemoDialog d=new DemoDialog(this,"Диалоговое окно",true);

}

public void windowClosing(WindowEvent we){

this.dispose();

}

public void windowActivated(WindowEvent we){};

public void windowClosed(WindowEvent we){};

public void windowDeactivated(WindowEvent we){};

public void windowDeiconified(WindowEvent we){};

public void windowIconified(WindowEvent we){};

public void windowOpened(WindowEvent we){};

public static void main(String args[])

{Frame1 f=new Frame1();

}

class DemoDialog extends Dialog implements ActionListener{

Button btn;

public DemoDialog(Frame1 ff, String title,boolean b){

super(ff,title,b);

setLayout(new FlowLayout(FlowLayout.LEFT));

btn=new Button("Закрыть");

setSize(300,200);

add(btn);

btn.addActionListener(this);

setVisible(true);

}

public void actionPerformed(ActionEvent ae){

this.dispose();

}

}

}

 

На рисунке 3.2 показан результат работы программы:

 

Рис. 3.2. Результат работы программы, приведенной в листинге Frame1.java

 

 


 





Поделиться с друзьями:


Дата добавления: 2014-12-25; Просмотров: 529; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.