Tạo máy tính đơn giản bằng Java Swing
Đề bài: Viết chương trình có giao diện gồm 3 TextField dùng để chứa 2 toán hạng và 1 kết quả; 4 Button biểu diễn 4 phép toán Cộng, Trừ, Nhân và Chia. Mỗi khi người dùng ấn chuột vào một phép toán, chương trình sẽ tính toán và hiển thị ở trường TextField tương ứng.
Yêu cầu kiến thức:
- Kế thừa và triển khai các phương thức đã được đề ra ở các lớp cha
- Phân tích và thiết kế các đối tượng trên giao diện là các components
- Hiểu rõ bản chất cách hoạt động các đối tượng
Cấu trúc thư mục:
src
|——buildUI
|——SimpleCalculator.java
|——usingUI
|——MainClass.java
Code tham khảo dưới đây được viết trên JDK ver 8.x:
File SimpleCalculator.java:
package buildUI;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class SimpleCalculator extends JFrame implements ActionListener {
// Khai bao 4 button
private JButton btnCong;
private JButton btnTru;
private JButton btnNhan;
private JButton btnChia;
// Khai bao 3 textfield chua 2 so
private JTextField tfNum1;
private JTextField tfNum2;
// Khai bao1 textfield hien thi ket qua
private JTextField tfResult;
// Khai bao container
private Container cont;
// Khai bao cac panel de gom nhom cac component
private JPanel panel1, panel2;
// Ham khoi tao
public SimpleCalculator(String title) {
super(title);
cont = this.getContentPane();
// Tao cac thanh phan tren giao dien khoi tao
JLabel lbNum1 = new JLabel("Enter Number 1: ");
tfNum1 = new JTextField();
JLabel lbNum2 = new JLabel("Enter Number 2: ");
tfNum2 = new JTextField();
JLabel lbResult = new JLabel("Result: ");
tfResult = new JTextField();
// Vo hieu qua nhap cua tfResult
tfResult.setEditable(false);
// Dat cac component vao cac panel thich hop
panel1 = new JPanel();
panel1.setLayout(new GridLayout(3, 2)); // Layout gom 3 hang 2 cot
panel1.add(lbNum1);
panel1.add(tfNum1);
panel1.add(lbNum2);
panel1.add(tfNum2);
panel1.add(lbResult);
panel1.add(tfResult);
// Tao 4 nut cho 4 phep toan
btnCong = new JButton("+");
btnTru = new JButton("-");
btnNhan = new JButton("*");
btnChia = new JButton("/");
// Panel2 chua 5 4 phep toan
panel2 = new JPanel();
panel2.add(btnCong);
panel2.add(btnTru);
panel2.add(btnNhan);
panel2.add(btnChia);
// Dat panel 1 vao vung chinh giua cua container
cont.add(panel1);
// Dat panel 2 vao vung ben duoi
cont.add(panel2, "South");
// Gan Listen cho cac button tuong ung
btnCong.addActionListener(this);
btnTru.addActionListener(this);
btnNhan.addActionListener(this);
btnChia.addActionListener(this);
// Thiet lap kich thuoc va hien thi
this.pack();
this.setVisible(true);
}
// Ham thuc hien phep cong
public void cong() {
// Lay tu du lieu
double num1 = Double.parseDouble(tfNum1.getText());
double num2 = Double.parseDouble(tfNum2.getText());
// Tinh toan
double result = num1 + num2;
// Hien thi ket qua
tfResult.setText(String.valueOf(result));
}
// Ham thuc hien phep tru
public void tru() {
// Lay tu du lieu
double num1 = Double.parseDouble(tfNum1.getText());
double num2 = Double.parseDouble(tfNum2.getText());
// Tinh toan
double result = num1 - num2;
// Hien thi ket qua
tfResult.setText(String.valueOf(result));
}
// Ham thuc hien phep nhan
public void nhan() {
// Lay tu du lieu
double num1 = Double.parseDouble(tfNum1.getText());
double num2 = Double.parseDouble(tfNum2.getText());
// Tinh toan
double result = num1 * num2;
// Hien thi ket qua
tfResult.setText(String.valueOf(result));
}
// Ham thuc hien phep chia
public void chia() {
// Lay tu du lieu
double num1 = Double.parseDouble(tfNum1.getText());
double num2 = Double.parseDouble(tfNum2.getText());
// Tinh toan
double result = num1 / num2;
// Hien thi ket qua
tfResult.setText(String.valueOf(result));
}
@Override
public void actionPerformed(ActionEvent e) {
// Khi click btnCong, btnTru, btnNhan, btnChia
if (e.getActionCommand() == "+") {
cong();
} else if (e.getActionCommand() == "-") {
tru();
} else if (e.getActionCommand() == "*") {
nhan();
} else if (e.getActionCommand() == "/") {
chia();
}
}
}
File MainClass.java:
package usingUI;
import buildUI.SimpleCalculator;
public class MainClass {
public static void main(String[] args) {
// Khai bao doi tuong
SimpleCalculator slculator = new SimpleCalculator("Simple Calculator");
}
}
Kết quả chương trình:
Kết luận:
- Bạn có thể tham khảo thêm khóa học lập trình Java từ cơ bản đến nâng cao. Xem tại đây
- Bạn có thể tham khảo thêm khóa học lập trình C từ cơ bản đến nâng cao. Xem tại đây
- Bạn có thể tham khảo thêm khóa học Thành thạo lập trình C#. Xem tại đây
- Bạn có thể tham khảo thêm khóa học Ôn tập OOP cơ bản trong Java. Xem tại đây