23:48
Урок 47: Разработка графического приложения

Курс по программированию на Java

Урок 47: Разработка графического приложения

Графические приложения предоставляют пользователям более удобный и интуитивно понятный интерфейс. В Java для разработки графических приложений используется библиотека Swing. В этом уроке мы рассмотрим, как создать простое графическое приложение с использованием Swing, включая создание окна, добавление компонентов и обработку событий.

Создание простого графического приложения

Для начала создадим простое окно с кнопкой, которая будет выводить сообщение при нажатии. Вот пример кода для создания такого приложения:

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class SimpleGUIApp {
 public static void main(String[] args) {
 JFrame frame = new JFrame("Simple GUI Application");
 frame.setSize(300, 200);
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 JButton button = new JButton("Click Me");
 button.addActionListener(new ActionListener() {
 public void actionPerformed(ActionEvent e) {
 JOptionPane.showMessageDialog(frame, "Button Clicked!");
 }
 });

 frame.getContentPane().add(button);
 frame.setVisible(true);
 }
}

Результат выполнения

Окно с кнопкой "Click Me". При нажатии на кнопку выводится сообщение "Button Clicked!"

Упражнения

Упражнение 1: Добавление текстового поля

Создайте графическое приложение с текстовым полем и кнопкой. При нажатии на кнопку программа должна выводить текст, введенный в текстовое поле, в диалоговом окне.

Решение:

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class TextFieldApp {
 public static void main(String[] args) {
 JFrame frame = new JFrame("Text Field Application");
 frame.setSize(400, 200);
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

 JTextField textField = new JTextField();
 JButton button = new JButton("Show Text");
 
 button.addActionListener(new ActionListener() {
 public void actionPerformed(ActionEvent e) {
 String text = textField.getText();
 JOptionPane.showMessageDialog(frame, "You entered: " + text);
 }
 });

 frame.getContentPane().add(textField, BorderLayout.CENTER);
 frame.getContentPane().add(button, BorderLayout.SOUTH);
 frame.setVisible(true);
 }
}

Объяснение: В этом примере создается окно с текстовым полем и кнопкой. При нажатии на кнопку выводится сообщение с текстом, введенным в текстовое поле.

Упражнение 2: Калькулятор с графическим интерфейсом

Создайте графическое приложение "Калькулятор", которое будет выполнять простые арифметические операции (сложение, вычитание, умножение, деление). Приложение должно содержать два текстовых поля для ввода чисел, кнопки для выбора операции и метку для вывода результата.

Решение:

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class CalculatorApp {
 public static void main(String[] args) {
 JFrame frame = new JFrame("Calculator");
 frame.setSize(400, 300);
 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
 JPanel panel = new JPanel(new GridLayout(5, 2));

 JLabel label1 = new JLabel("Number 1:");
 JTextField textField1 = new JTextField();
 JLabel label2 = new JLabel("Number 2:");
 JTextField textField2 = new JTextField();
 JLabel labelResult = new JLabel("Result:");
 JTextField textFieldResult = new JTextField();
 textFieldResult.setEditable(false);

 JButton buttonAdd = new JButton("+");
 JButton buttonSubtract = new JButton("-");
 JButton buttonMultiply = new JButton("*");
 JButton buttonDivide = new JButton("/");

 buttonAdd.addActionListener(new ActionListener() {
 public void actionPerformed(ActionEvent e) {
 try {
 double num1 = Double.parseDouble(textField1.getText());
 double num2 = Double.parseDouble(textField2.getText());
 double result = num1 + num2;
 textFieldResult.setText(String.valueOf(result));
 } catch (NumberFormatException ex) {
 JOptionPane.showMessageDialog(frame, "Invalid input!");
 }
 }
 });

 buttonSubtract.addActionListener(new ActionListener() {
 public void actionPerformed(ActionEvent e) {
 try {
 double num1 = Double.parseDouble(textField1.getText());
 double num2 = Double.parseDouble(textField2.getText());
 double result = num1 - num2;
 textFieldResult.setText(String.valueOf(result));
 } catch (NumberFormatException ex) {
 JOptionPane.showMessageDialog(frame, "Invalid input!");
 }
 }
 });

 buttonMultiply.addActionListener(new ActionListener() {
 public void actionPerformed(ActionEvent e) {
 try {
 double num1 = Double.parseDouble(textField1.getText());
 double num2 = Double.parseDouble(textField2.getText());
 double result = num1 * num2;
 textFieldResult.setText(String.valueOf(result));
 } catch (NumberFormatException ex) {
 JOptionPane.showMessageDialog(frame, "Invalid input!");
 }
 }
 });

 buttonDivide.addActionListener(new ActionListener() {
 public void actionPerformed(ActionEvent e) {
 try {
 double num1 = Double.parseDouble(textField1.getText());
 double num2 = Double.parseDouble(textField2.getText());
 if (num2 != 0) {
 double result = num1 / num2;
 textFieldResult.setText(String.valueOf(result));
 } else {
 JOptionPane.showMessageDialog(frame, "Division by zero!");
 }
 } catch (NumberFormatException ex) {
 JOptionPane.showMessageDialog(frame, "Invalid input!");
 }
 }
 });

 panel.add(label1);
 panel.add(textField1);
 panel.add(label2);
 panel.add(textField2);
 panel.add(buttonAdd);
 panel.add(buttonSubtract);
 panel.add(buttonMultiply);
 panel.add(buttonDivide);
 panel.add(labelResult);
 panel.add(textFieldResult);

 frame.getContentPane().add(panel);
 frame.setVisible(true);
 }
}

Объяснение: В этом примере создается графическое приложение "Калькулятор" с двумя текстовыми полями для ввода чисел, кнопками для выбора арифметической операции и меткой для отображения результата. Программа выполняет арифметические операции и выводит результат.

Категория: Java | Просмотров: 39 | Добавил: Admin | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: