1.寫出一個簡易計算器需要的組件
2.先出監聽事件類
public class TextCalculator01 {
public static void main(String[] args) {
new MyCalculator();
}
}
//計算器類
class MyCalculator extends Frame{
public MyCalculator() {
//三個文本框
TextField num1 = new TextField(10);
TextField num2 = new TextField(10);
TextField num3 = new TextField(20);
//一個等號
Button button = new Button("=");
//實作鍵盤事件監聽
button.addActionListener(new MyCalculatorListener(num1,num2,num3));
//一個標簽
Label label = new Label("+");
//布局
setLayout(new FlowLayout());//流式布局
add(num1);
add(label);
add(num2);
add(button);
add(num3);
setVisible(true);
pack();
}
}
//監聽器類
class MyCalculatorListener implements ActionListener{
//獲得三個資料
private TextField num1,num2,num3;
public MyCalculatorListener(TextField num1,TextField num2,TextField num3) {
this.num1= num1;
this.num2 = num2;
this.num3 = num3;
}
@Override
public void actionPerformed(ActionEvent e) {
//獲得兩個加數
int n1 = Integer.parseInt(num1.getText());//轉換成int型別
int n2 = Integer.parseInt(num2.getText());
//前面兩個數相加,放入第三個框中
num3.setText(""+(n1 + n2));
//清除前兩個框的的內容
num1.setText("");
num2.setText("");
}
}

按下等號按鍵,前兩個框的內容會被清除,第三個框輸出結果3
優化后的寫法(完全面向物件)
//簡易計算器
public class TextCalculator {
public static void main(String[] args) {
new Calculator().loadFrame();
}
}
class Calculator extends Frame{
//屬性,三個檔案框組件
TextField num1,num2,num3;
//方法
public void loadFrame(){
//需要三個檔案框
num1 = new TextField(10);
num2 = new TextField(10);
num3 = new TextField(20);
Button button = new Button("=");
Label label = new Label("+");
button.addActionListener(new MyCalautor(this));
//布局
setLayout(new FlowLayout());//流式布局
add(num1);
add(label);
add(num2);
add(button);
add(num3);
setVisible(true);
pack();
}
}
//監聽事件
class MyCalautor implements ActionListener{
//獲得計算器這個類,在一個類中組合另一個類
Calculator calculator = null;
public MyCalautor(Calculator calculator) {
this.calculator = calculator;
}
@Override
public void actionPerformed(ActionEvent e) {
//1.獲得前面兩個數字
// 2.把兩個數的相加的結果輸入到第三個框
//3.把前兩個框的內容清除
int n1 = Integer.parseInt(calculator.num1.getText());
int n2 = Integer.parseInt(calculator.num2.getText());
calculator.num3.setText(""+(n1+n2));
calculator.num1.setText("");
calculator.num2.setText("");
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/280680.html
標籤:java
