Hướng dẫn cài và sử dụ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:

Hướng dẫn cài và sử dụng java swing

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