К курсовой работе 2-го курса
Поэтапная разработка простой программы, состоящей из трех окон на языке Java
Задание
Разработать программу, состоящую из прикладного окна Upr и двух дочерних окон: Model и Info.
Прикладное окно Upr содержит одну кнопку Ок.
В дочернем окне Model рисуется круг синего цвета.
В дочернем окне Info выдается строка, указывающая толщину линии круга.
При нажатии на кнопку Ок изменяется (увеличивается или возвращается к прежнему размеру) толщина круга в дочернем окне Model и размер этой толщины выдается в строке дочернего окна Info.
О программе
В программе создадим поэтапно три объекта-окна и объект-кнопку. При нажатии на кнопку специальная функция- обработчик этой кнопки определит размер толщины круга и передаст этот размер дочерним окнам и потребует перерисовать круг и строку.
Программу разработаем поэтапно.
На первом этапе создадим прикладное окно Upr. Убедившись, что в выполняющейся программе появилось окно, перейдем ко второму этапу разработки.
На втором этапе создадим дочерние окна Model и Info. Дочерние окна создадим с помощью оператора new в конструкторе прикладного окна.Таким образом, объект прикладного окна содержит два объекта дочерних окон. Убедившись, что в выполняющейся программе появились и дочерние окна, перейдем к третьему этапу разработки.
На третьем этапе создадим в прикладном окне объект-кнопку but. Убедившись, что в выполняющейся программе появилась кнопка в прикладном окне, перейдем к четвертому этапу разработки.
На четвертом этапе изменим объекты дочерних окон Model и Info.
Теперь в дочернем окне Model рисуется круг, а в дочернем окне Info выдается строка, указывающая толщину круга. Убедившись, что в выполняющейся программе в дочерних окнах появились круг со строкой, перейдем к пятому этапу разработки
Пятый этап интересный. Здесь мы реализуем функцию –обработчик actionPerformed() кнопки. Для чего воспользуемся событием кнопки и классом ActionListener. В обработчике actionPerformed(), используя ссылки mod и inf на объекты дочерних окон, изменим толщину d круга и выполним функции repaint() этих окон, обеспечивающих выполнение функций paint() перерисовки этих окон.
Этап 1. Каркас приложения с основной формой
import java.awt.*;
class Model extends Frame
{
}
class Inf extends Frame
{
}
class Upr extends Frame
{
public Upr ()
{
setSize(300,300);
setVisible(true);
setTitle("Upr");
}
}
class Test
{
public static void main()
{
Upr upr=new Upr();
}
}
Приложение содержит три окна, порождённых из класса Form. Классы Model и Inf пустые и на данном этапе не задействованы. Используется только основной класс Upr, объект которого создаётся в аргументе статической функции run() класса Frame. Функция run() высвечивает его в виде прикладного окна на экране. В конструкторе класса Upr прикладному окну присваивается заголовок и задаются его размеры.
Этап 2. Основная форма имеет две дочерние формы
...
class Upr extends Frame
{
public Upr ()
{
setSize(300,300);
setVisible(true);
setTitle("Upr");
Model mod= new Model ();
mod.setTitle("Model");
mod.setSize(300,300);
mod.setVisible(true);
Inf inf= new Inf ();
inf.setTitle("Information");
inf.setSize(300,300);
inf.setVisible(true);
/////////
This.addWindowListener (new WindowAdapter ()
{
Public void windowClosing (WindowEvent wE)
{
System.exit(0);
}
});
}
}
class Test
{
public static void main()
{
Upr upr=new Upr();
}
}
Конструктор Upr основной формы создаёт объекты дочерних форм, определяет их заголовки и показывает эти формы на экране с помощью функции setVisible() из наследуемого класса Form.
Если в случае языка C# уже реализовано закрытие окна по кнопке, то в случае языка Java это необходимо сделать в конструкторе. В конце тела конструктора Upr() реализовано закрытие окна с использованием специального класса WindowAdapter и функций windowClosing() и exit().
Этап 3. На основной форме появляется кнопка
import java.awt.*;
import java.awt.event.*;
class Model extends Frame
{
}
class Inf extends Frame
{
}
class Upr extends Frame
{
Model mod;
Inf inf;
Button but;
public Upr ()
{
setSize(300,300);
setVisible(true);
setTitle("Upr");
mod= new Model ();
mod.setTitle("Model");
mod.setSize(300,300);
mod.setVisible(true);
inf= new Inf ();
inf.setTitle("Information");
inf.setSize(300,300);
inf.setVisible(true);
/////////
this.addWindowListener (new WindowAdapter ()
{
public void windowClosing (WindowEvent wE)
{
System.exit(0);
}
});
this.setLayout(null);
but= new Button ("OK");
but.setSize(30,40);
but.setLocation(50,50);
add(but);
}
}
class Test
{
public static void main()
{
Upr upr=new Upr();
}
}
Создана кнопка but типа Button и подсоединена к управляющим элементам основной формы с помощью функции add().