Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Приложение 1. Спецификация класса Calc.




Лабораторная работа № 1

По предмету «Объектно-ориентированное программирование»

Цель работы

 

  1. Познакомиться с библиотекой java.awt.
  2. Научится обрабатывать события.
  3. Освоить работу с управляющими компонентами и менеджерами размещения.
  4. Применить полученные знания на практике

 

Задание для домашней подготовки

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

Задание к лабораторной работе

Написать программу – калькулятор, реализующую графический интерфейс. Программа должна содержать:

o 2 поля ввода (TextField) значений разных типов (например, double и int),

o выпадающий список (Choice) с набором математических операций (+,-,...) – не менее 5 пунктов (на выбор студента),

o кнопку (Button), активирующую вычисление результата,

o метки (Label), указывающие на тип, назначение и т.п. полей ввода

o метку, выводящую информацию об ошибках,

o текстовое поле или метку (на выбор студента), куда выводится результат,

o флажок (Checkbox) или набор переключателей (CheckboxGroup), которые умножают результат на какой-нибудь коэффициент или коэффициенты (значения – на выбор студента),

o обработчик события нажатия на кнопку получения результата.

 

Окно программы должно выглядеть приблизительно так:

 

Содержание отчета

Отчет должен содержать:

1. Постановку задачи, решаемой отлаженной программой.

2. Руководство пользователя отлаженной программы, содержащее описание интерфейсов всех функций программы.

3. Листинг программы с необходимыми комментариями.

Пример готовой программы:

import java.awt.*; // подключениепакета с классамиграфическихкомпонентов

import java.awt.event.*; // подключениепакета с интерфейсами – “ слушателями

 

class Calc extends Frame implements ActionListener

// наследуемкласс Frame (окно) и интерфейсслушателясобытиянажатиякнопки

{

TextField t1= new TextField(8); // размерполя – 8 символов

TextField t2= new TextField(8);

TextField t3= new TextField(8);

 

 

Label l1= new Label("(Первое число)");

Label l2= new Label("Второе число");

Label l3= new Label("Результат");

// меткапоумолчаниюсодержиттекст «(...)»

 

Button b = new Button("Получить результат"); // кнопка

public Calc(){ // конструкторкласса

super ();

setSize(400,200); // размерокна

 

setLayout(new FlowLayout()); // назначаемменеджерразмещениякомпонентов (компоновщик)

 

add(l1); // выводимсозданныекомпонентынаэкран

add(t1);

add(l2);

add(t2);

add(l3);

add(t3);

add(b);

 

 

addWindowListener(new WindowAdapter(){ // добавляемобработчиккнопкизакрытияокна

public void windowClosing(WindowEvent e){

dispose(); System. exit (0);

}

}

);

b.addActionListener(this); // добавляемобработчикнажатиянакнопку

show(); // делаетокновидимым

} // конецконструктора

 

public void getRez(){ // метод, вычисляющийрезультат

double x, // значениеизпервоготекстовогополя

Rez1 =0; // результат

double y,

Rez2 =0;

double z,

Rez3 =0;

 

x= new Double(t1.getText()).doubleValue(); // извлечениечислаизпервоготекстовогополя

y= new Double(t2.getText()).doubleValue();

z=x*y;

 

t3.setText(String. valueOf (z));

// записываемтекст в поле (метку) результата с помощьюметода setText(String.valueOf(Rez));

} // окончаниеметода getRez()

 

public void actionPerformed(ActionEvent e){getRez();} // реализацияметода actionPerformed

//(методвызываетсянажатиемна кнопку b), см. выше

 

public static void main(String []a){Calc clc = new Calc();} //создаем только экземпляр класса Calc и все.

 

} //окончание класса Calc

Приложение 1. Спецификация класса Calc.

 

import java.awt.*; //подключение пакета с классами графических компонентов

import java.awt.event.*; // подключение пакета с интерфейсами – “слушателями”

 

class Calc extends Frame implements ActionListener

//наследуем класс Frame (окно) и интерфейс “слушателя” события нажатия кнопки

{

TextField t1=new TextField(8); //размер поля – 8 символов

 

//… другие текстовые поля

 

Label l1=new Label("(double)"); //метка по умолчанию содержит текст «(double)»

 

//… другие метки

 

Button b = new Button("Получить результат"); //кнопка

Checkbox cb=new Checkbox("+20%"); //флажок с названием

Choice ch; //выпадающий список

public Calc(){ //конструктор класса

super();

setSize(400,200); //размер окна

ch = new Choice(); //конструктор выпадающего списка

ch.addItem("+"); //добавляем пункты списка

 

//… другие пункты списка

 

setLayout(new FlowLayout()); //назначаем менеджер размещения компонентов (компоновщик)

 

add(l1); //выводим созданные компоненты на экран

add(t1);

add(ch);

 

//… и другие

 

addWindowListener(new WindowAdapter(){ //добавляем обработчик кнопки закрытия окна

public void windowClosing(WindowEvent e){

dispose(); System.exit(0);

}

}

);

b.addActionListener(this); //добавляем обработчик нажатия на кнопку

show(); //делает окно видимым

} //конец конструктора

 

public void getRez(){ //метод, вычисляющий результат

double x, //значение из первого текстового поля

Rez=0; //результат

 

//… вторая переменная – значение второго текстового поля

 

try{

x=new Double(t1.getText()).doubleValue(); //извлечение числа из первого текстового поля

//…

switch(ch.getSelectedIndex()){ //какой пункт выпадающего списка выбран? (номер)

case 0: Rez = x + /*вторая переменная*/; break;

case 1: //…

 

//… остальные операторы

 

};

if (cb.getState()) Rez*=1.2; //если флажок нажат, умножаем результат на 1.2

 

//записываем текст в поле (метку) результата с помощью метода setText(String.valueOf(Rez));

 

} //окончание блока try

 

catch(Exception ex){

String s=new String(ex.getMessage());

//записываем текст в поле (метку) сообщения об ощибке с помощью метода setText("Ошибка "+s);

} // окончание блока catch

} // окончание метода getRez()

 

public void actionPerformed(ActionEvent e){getRez();} //реализация метода actionPerformed

//(метод вызывается нажатием на кнопку b), см. выше

 

public static void main(String []a){Calc clc=new Calc();} //создаем только экземпляр класса Calc и все.

 

} //окончание класса Calc

 


Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...