Import java.Awt.*;
import
java.awt.event.*;
Import javax.Swing.*;
public
class
MultyFrame extends
JFrame {
ChildFrame
s2;
//
Конструктор
основного
окна
public
MultyFrame() {
ButtonListener blistener = new
ButtonListener();
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screens = kit.getScreenSize();
int
w, h;
w = screens.width;
h = screens.height;
// Вывод окна в центре экрана
setSize(w / 2, h / 2);
setLocation(w / 4, h / 4);
setTitle("Главное
окно");
setLayout(new
FlowLayout());
// Добавление кнопки для создания
дочернего окна
JButton
but = new
JButton("Созд.доч.окно");
add(but);
// Добавление слушателя для кнопки
but.addActionListener(blistener);
}
//
Слушатель для кнопки (при нажатии
выводится новое окно)
class
ButtonListener implements
ActionListener {
public
void
actionPerformed(ActionEvent e) {
if
(s2 == null)
{
//
Если доч. окно не существует, то создаем
s2
= new
ChildFrame();
}
s2.setVisible(true);
}
}
//
Класс
дочернего
окна
class
ChildFrame extends
JFrame {
// Конструктор дочернего окна
public
ChildFrame
() {
Toolkit
kit = Toolkit.getDefaultToolkit();
Dimension screens = kit.getScreenSize();
int
w, h;
// Вывод окна в левом углу экрана
w = screens.width;
h = screens.height;
setSize(w/3, h/3);
setLocation(w/6, h/6);
setTitle("Дочернее
окно");
}
}
public
static
void
main(String[] args) {
MultyFrame
frame = new
MultyFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
Результат
выполнения
9