ЦЕЛЬ ЛАБОРАТОРНОЙ РАБОТЫ:
Цель данной лабораторной работы- научиться создавать графический интерфейс пользователя, освоить на практике работу с различными объектами для создания ГИП, менеджерами размещения компонентов.
Для начала, необходимо включить в нашу программу новые библиотеки:
importjavax.swing.*;
importjava.awt.*;
Библиотека java.swing - библиотека для создания графического интерфейса для программ на языке Java.
Java.awt - инструментарий для работы с различными оконными средами.
Далее необходимо в строке класса после названия класса прописать «extendsJFrame{}». Это значит, что наш класс Rabota наследуется от класса JFrame. Это нужно для создания окна. Затем задаем параметрыдля текстовых полей и кнопокнашего окна. Делается это следующим образом:
publicclassRabotaextendsJFrame{
JTextFieldjta1 = newJTextField(10);
JTextField jta2 = new JTextField(10);
JButton button1 = new JButton(" + ");
JButton button2 = new JButton(" - ");
JButton button3 = new JButton(" X ");
JButton button4 = new JButton(" / ");
JButton button5 = new JButton(" x2 ");
JButton button6 = new JButton(" SQR ");
Font font = new Font("Times new roman",Font.BOLD,100);
JTextFieldjta = newJTextField(10); – добавление текстового поля шириной 10.
JButtonbutton1 = newJButton(" + "); - добавление на окно кнопки с символом «+» и т.д.
Font font = new Font("Times new roman",Font.BOLD,100); - настройкашрифта.
Теперь можно, непосредственно, добавить на поле наши кнопки и текстовые поля:
Rabota() {
super("Калькулятор");
setLayout(new FlowLayout());
setSize(400,200);
add(new JLabel("Число А"));
add (jta1);
add(newJLabel("ЧислоВ"));
add (jta2);
add(button1);
add(button2);
add(button3);
add(button4);
add(button5);
add(button6);
super («») – строка для названия окна.
setLayout (newFlowLayout()) – метод для установки менеджера расположения.
setSize(400,200); - настройка размеров нашего окна.
add(newJLabel("")); - добавление надписи радом с текстовым полем (jta).
add(newJLabel("Число А")); - добавление текстового поля (jta) на окно.
add(button1); - добавление кнопки на окно.
Затем идет настройка каждой из кнопок нашего калькулятора. Отличаться эти настройки будут лишь операцией, выполняемой кнопкой. Остальные параметры остаются теми же. Объясним это на примере кнопки “+”.
button1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try{
double x1 = Double.parseDouble(jta1.getText().trim());
double x2 = Double.parseDouble(jta2.getText().trim());
JOptionPane.showMessageDialog(null, "Результат = "
+(x1+x2), "Внимание!", JOptionPane.INFORMATION_MESSAGE);
}
catch (Exception e1){
JOptionPane.showMessageDialog(null, "Ошибка в числе!\nПопробуйте еще раз!",
"Внимание!",JOptionPane.ERROR_MESSAGE);
}
}
});
button1.addActionListener(newActionListener() { - откликкнопкинанажатиенанеепользователем.
public void actionPerformed(ActionEvent e) { - объектнаяссылка на объект класса ActionEvent.
try – ключевое слово, которое реализует нажатие на кнопку, если условия выполнены верно. (наше условие – числовое значение вводимых данных в текстовые поля jtaTextField)
doublex = Double.parseDouble(jta.getText().trim()); - переформатирование строки в число типа double.
JOptionPane.showMessageDialog(null, "Результат = " +(x1+x2), "Внимание!", JOptionPane.INFORMATION_MESSAGE); - вывод информационного сообщения с результатом (условия выполнены не верно). (x1+x2) - прописывание операции сложения.
catch (Exceptione1) – ключевое слово, которое реализует нажатие на кнопку, если одно из условий выполнено не верно. (наше условие – числовое значение вводимых данных в текстовые поля jtaTextField).
JOptionPane.showMessageDialog(null, "Ошибка в числе!\nПопробуйте еще раз!", "Внимание!", JOptionPane.ERROR_MESSAGE); - вывод сообщения об ошибке.
Остальные кнопки нашего калькулятора отличаются лишь выполняемой операцией (сложение, вычитание и т.д.). Кроме кнопки “SQR” – в ней мы задали только одну переменную, т.к. корень извлекаем из одного числа, а не из двух.
Финальным этапом выполнения этой программы будет прописывание 2-ух строк:
setVisible(true);
}
public static void main(String[] args) {
newRabota();
}
}
setVisible(true); - наше окно становится видимым.
public static void main(String[] args) {new Rabota()}; - выделениепамяти для нашей программы.
Рис.19
Рис.20
Рис.21