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

按下等號(hào)按鍵,前兩個(gè)框的內(nèi)容會(huì)被清除,第三個(gè)框輸出結(jié)果3
優(yōu)化后的寫法(完全面向?qū)ο螅?/strong>
//簡易計(jì)算器
public class TextCalculator {
public static void main(String[] args) {
new Calculator().loadFrame();
}
}
class Calculator extends Frame{
//屬性,三個(gè)文件框組件
TextField num1,num2,num3;
//方法
public void loadFrame(){
//需要三個(gè)文件框
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ì)算器這個(gè)類,在一個(gè)類中組合另一個(gè)類
Calculator calculator = null;
public MyCalautor(Calculator calculator) {
this.calculator = calculator;
}
@Override
public void actionPerformed(ActionEvent e) {
//1.獲得前面兩個(gè)數(shù)字
// 2.把兩個(gè)數(shù)的相加的結(jié)果輸入到第三個(gè)框
//3.把前兩個(gè)框的內(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)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
如何解決 Java 中的 IndexOutOfBoundsException 異
當(dāng)我們?cè)?nbsp;Java 中使用 List 的時(shí)候,有時(shí)候會(huì)出現(xiàn)向 List 中不存在的位置設(shè)置新元素的情況,從而導(dǎo)致 IndexOutOfBoundsException 異常,本文將會(huì)介紹這個(gè)問題的產(chǎn)生原因以及解決方案2023-10-10
Java IO復(fù)用_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Java IO復(fù)用的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧2017-05-05
IntelliJ IDEA安裝插件阿里巴巴Java開發(fā)手冊(cè)(Alibaba Java Coding Guidelines
這篇文章主要介紹了IntelliJ IDEA安裝插件阿里巴巴Java開發(fā)手冊(cè)(Alibaba Java Coding Guidelines),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
MyBatis-Plus?實(shí)體類注解的實(shí)現(xiàn)示例
MyBatis-Plus作為MyBatis的增強(qiáng)版,提供了一系列實(shí)用的注解,如@TableName、@TableId、@TableField等,旨在簡化數(shù)據(jù)庫和Java實(shí)體類之間的映射及CRUD操作,通過這些注解,開發(fā)者可以輕松實(shí)現(xiàn)表映射、字段映射、邏輯刪除、自動(dòng)填充和樂觀鎖等功能2024-09-09
如何動(dòng)態(tài)改變Retrofit的base url和rest版本詳解
這篇文章主要給大家介紹了關(guān)于如何動(dòng)態(tài)改變Retrofit的base url和rest版本的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09
springboot中的靜態(tài)資源加載順序優(yōu)先級(jí)
這篇文章主要介紹了springboot中的靜態(tài)資源加載順序優(yōu)先級(jí),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
Mybatis-Plus的條件構(gòu)造器QueryWrapper & UpdateWrapper示例詳解
Mybatis-Plus的條件構(gòu)造器QueryWrapper和UpdateWrapper為開發(fā)者提供了強(qiáng)大、靈活的條件構(gòu)建工具,能夠大大簡化數(shù)據(jù)庫操作的代碼,通過本文的介紹,讀者可以更加深入地理解這兩個(gè)條件構(gòu)造器的使用方法,并在實(shí)際項(xiàng)目中靈活應(yīng)用,感興趣的朋友跟隨小編一起看看吧2024-01-01
java 過濾器filter防sql注入的實(shí)現(xiàn)代碼
下面小編就為大家?guī)硪黄猨ava 過濾器filter防sql注入的實(shí)現(xiàn)代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-08
Java通過反射,如何動(dòng)態(tài)修改注解的某個(gè)屬性值
這篇文章主要介紹了Java通過反射,動(dòng)態(tài)修改注解的某個(gè)屬性值操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07

