java GUI實(shí)現(xiàn)加法計(jì)算器
本文實(shí)例為大家分享了java GUI實(shí)現(xiàn)加法計(jì)算器的具體代碼,供大家參考,具體內(nèi)容如下
1.寫出一個簡易計(jì)算器需要的組件
2.先出監(jiān)聽事件類
public class TextCalculator01 {
public static void main(String[] args) {
new MyCalculator();
}
}
//計(jì)算器類
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("=");
//實(shí)現(xiàn)鍵盤事件監(jiān)聽
button.addActionListener(new MyCalculatorListener(num1,num2,num3));
//一個標(biāo)簽
Label label = new Label("+");
//布局
setLayout(new FlowLayout());//流式布局
add(num1);
add(label);
add(num2);
add(button);
add(num3);
setVisible(true);
pack();
}
}
//監(jiān)聽器類
class MyCalculatorListener implements ActionListener{
//獲得三個數(shù)據(jù)
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) {
//獲得兩個加數(shù)
int n1 = Integer.parseInt(num1.getText());//轉(zhuǎn)換成int類型
int n2 = Integer.parseInt(num2.getText());
//前面兩個數(shù)相加,放入第三個框中
num3.setText(""+(n1 + n2));
//清除前兩個框的的內(nèi)容
num1.setText("");
num2.setText("");
}
}

按下等號按鍵,前兩個框的內(nèi)容會被清除,第三個框輸出結(jié)果3
優(yōu)化后的寫法(完全面向?qū)ο螅?/strong>
//簡易計(jì)算器
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();
}
}
//監(jiān)聽事件
class MyCalautor implements ActionListener{
//獲得計(jì)算器這個類,在一個類中組合另一個類
Calculator calculator = null;
public MyCalautor(Calculator calculator) {
this.calculator = calculator;
}
@Override
public void actionPerformed(ActionEvent e) {
//1.獲得前面兩個數(shù)字
// 2.把兩個數(shù)的相加的結(jié)果輸入到第三個框
//3.把前兩個框的內(nèi)容清除
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("");
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
IDEA快速搭建spring?boot項(xiàng)目教程(Spring?initializr)
這篇文章主要介紹了IDEA快速搭建spring?boot項(xiàng)目教程(Spring?initializr),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
解決logback使用${spring.application.name}日志打印路徑的問題
這篇文章主要介紹了解決logback使用${spring.application.name}日志打印路徑的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06
Java Spring中Quartz調(diào)度器詳解及實(shí)例
這篇文章主要介紹了Java Spring中Quartz調(diào)度器詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-02-02

