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:

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

Chủ Đề