Java實現(xiàn)一個簡單計算器
先來看看界面效果:
源碼如下:
package test1; ? import java.awt.Frame; import java.awt.TextField; import java.awt.Button; import java.awt.Panel; import java.awt.GridLayout; ? import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; ? import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class calculate { ?? ?TextField tfResult; ?? ?Button btNum[],btOper[],btPoint,btEqual,btBack,btSqrt,btPingfang,btLifang; ?? ?int num1,num2;//操作數(shù) ?? ?char oper;//操作符 ?? ?boolean isNum;//代表數(shù)字標(biāo)志位 ?? ?public void init(){ ?? ??? ?Frame f; ?? ??? ? ?? ??? ?tfResult=new TextField(); ?? ??? ? ?? ??? ?btNum=new Button[10];//數(shù)組對象 ?? ??? ?for(int i=0;i<=9;i++){ ?? ??? ??? ?btNum[i]=new Button(i+""); ?? ??? ?} ?? ??? ?btOper=new Button[4]; ?? ??? ?btOper[0]=new Button("+"); ?? ??? ?btOper[1]=new Button("-"); ?? ??? ?btOper[2]=new Button("*"); ?? ??? ?btOper[3]=new Button("/"); ?? ??? ? ?? ??? ?btPoint=new Button("."); ?? ??? ?btEqual=new Button("="); ?? ??? ?btBack=new Button("Backspace"); ?? ??? ?btSqrt=new Button("Sqrt"); ?? ??? ?btPingfang=new Button("2"); ?? ??? ?btLifang=new Button("3"); ?? ??? ?f=new Frame("小羊羔的計算器!"); ?? ??? ? ?? ??? ?f.setSize(300,300); ?? ??? ? ?? ??? ?//放置組件 ?? ??? ?f.add(tfResult,"North"); ?? ??? ?Panel panel=new Panel(); ?? ??? ?f.add(panel,"Center"); ?? ??? ?GridLayout gl=new GridLayout(5,4); ?? ??? ?panel.setLayout(gl); ?? ??? ?panel.add(btNum[1]); ?? ??? ?panel.add(btNum[2]); ?? ??? ?panel.add(btNum[3]); ?? ??? ?panel.add(btOper[0]); ?? ??? ? ?? ??? ?panel.add(btNum[4]); ?? ??? ?panel.add(btNum[5]); ?? ??? ?panel.add(btNum[6]); ?? ??? ?panel.add(btOper[1]); ?? ??? ? ?? ??? ?panel.add(btNum[7]); ?? ??? ?panel.add(btNum[8]); ?? ??? ?panel.add(btNum[9]); ?? ??? ?panel.add(btOper[2]); ?? ??? ? ?? ??? ?panel.add(btNum[0]); ?? ??? ?panel.add(btPoint); ?? ??? ?panel.add(btEqual); ?? ??? ?panel.add(btOper[3]); ?? ??? ? ?? ??? ?panel.add(btBack); ?? ??? ?panel.add(btSqrt); ?? ??? ?panel.add(btPingfang); ?? ??? ?panel.add(btLifang); ?? ??? ?f.setVisible(true); ?? ??? ? ?? ??? ?//注冊監(jiān)聽 ?? ??? ?f.addWindowListener(new MyWinLis()); ?? ??? ?//數(shù)字按鈕注冊監(jiān)聽 ?? ??? ?MyNumLis mnl=new MyNumLis(); ?? ??? ?for(int i=0;i<=9;i++) ?? ??? ??? ?btNum[i].addActionListener(mnl); ?? ??? ? ?? ??? ?//操作符按鈕注冊監(jiān)聽 ?? ??? ?MyOperLis mol=new MyOperLis(); ?? ??? ?for(int j=0;j<=3;j++) ?? ??? ??? ?btOper[j].addActionListener(mol); ?? ??? ?//等號按鈕注冊監(jiān)聽 ?? ??? ?MyEqualLis mel=new MyEqualLis(); ?? ??? ?btEqual.addActionListener(mel); ?? ??? ?//刪除按鈕注冊監(jiān)聽 ?? ??? ?MyBackLis mbl=new MyBackLis(); ?? ??? ?btBack.addActionListener(mbl); ?? ??? ?//開根號按鈕注冊監(jiān)聽 ?? ??? ?MySqrtLis msl=new MySqrtLis(); ?? ??? ?btSqrt.addActionListener(msl); ?? ??? ?//平方按鈕注冊監(jiān)聽 ?? ??? ?MyPingfangLis mpl=new MyPingfangLis(); ?? ??? ?btPingfang.addActionListener(mpl); ?? ??? ?//百分號注冊監(jiān)聽 ?? ??? ?MyLifangLis mll=new MyLifangLis(); ?? ??? ?btLifang.addActionListener(mll); ?? ?} ?? ?//定義監(jiān)聽器類 ?? ?class MyNumLis implements ActionListener{ ?? ??? ?public void actionPerformed(ActionEvent e){ ?? ??? ??? ?String t=e.getActionCommand(); ?? ??? ??? ?String s=tfResult.getText(); ?? ??? ??? ?if(isNum==false) ?? ??? ??? ??? ?tfResult.setText(t); ?? ??? ??? ?else? ?? ??? ??? ??? ?tfResult.setText(s+t); ?? ??? ??? ?isNum=true; ?? ??? ?} ?? ?} ?? ?class MySqrtLis implements ActionListener{ ?? ??? ?public void actionPerformed(ActionEvent e){ ?? ??? ??? ?double t=Double.parseDouble(tfResult.getText()); ?? ??? ??? ?tfResult.setText(Math.sqrt(t)+""); ?? ??? ??? ?isNum=false; ?? ??? ?} ?? ?} ?? ?class MyPingfangLis implements ActionListener{ ?? ??? ?public void actionPerformed(ActionEvent e){ ?? ??? ??? ?num1=Integer.parseInt(tfResult.getText()); ?? ??? ??? ?tfResult.setText(num1*num1+""); ?? ??? ?} ?? ?} ?? ?class MyLifangLis implements ActionListener{ ?? ??? ?public void actionPerformed(ActionEvent e){ ?? ??? ??? ?num1=Integer.parseInt(tfResult.getText()); ?? ??? ??? ?tfResult.setText(num1*num1*num1+""); ?? ??? ?} ?? ?} ?? ?class MyOperLis implements ActionListener{ ?? ??? ?public void actionPerformed(ActionEvent e){ ?? ??? ??? ?num1=Integer.parseInt(tfResult.getText());//轉(zhuǎn)化為INT ?? ??? ??? ?oper=e.getActionCommand().charAt(0); ?? ??? ??? ?isNum=false; ?? ??? ?} ?? ?} ?? ?class MyEqualLis implements ActionListener{ ?? ??? ?public void actionPerformed(ActionEvent e){ ?? ??? ??? ?int result=0; ?? ??? ??? ?isNum=false; ?? ??? ??? ?num2=Integer.parseInt(tfResult.getText()); ?? ??? ??? ?switch(oper){ ?? ??? ??? ??? ?case '+':result=num1+num2;break; ?? ??? ??? ??? ?case '-':result=num1-num2;break; ?? ??? ??? ??? ?case '*':result=num1*num2;break; ?? ??? ??? ??? ?case '/':result=num1/num2;break; ?? ??? ??? ?} ?? ??? ??? ?tfResult.setText(result+""); ?? ??? ?} ?? ?} ?? ?class MyBackLis implements ActionListener{ ?? ??? ?public void actionPerformed(ActionEvent e){ ?? ??? ??? ?tfResult.setText(""); ?? ??? ??? ?isNum=false; ?? ??? ?} ?? ?} ?? ?class MyWinLis extends WindowAdapter{ ?? ??? ?public void windowClosing(WindowEvent e){ ?? ??? ??? ?e.getWindow().setVisible(false); ?? ??? ??? ?e.getWindow().dispose(); ?? ??? ??? ?System.exit(0); ?? ??? ?} ?? ?} ?? ? ?? ?public static void main(String[] args) { ?? ??? ?// TODO Auto-generated method stub ?? ??? ?new calculate().init(); ?? ?} ? }
11×5=?界面如下:
到此這篇關(guān)于Java實現(xiàn)一個簡單計算器的文章就介紹到這了,更多相關(guān)Java簡單計算器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于java下載中g(shù)etContentLength()一直為-1的一些思路
下面小編就為大家?guī)硪黄趈ava下載中g(shù)etContentLength()一直為-1的一些思路。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06在Eclipse中部署Spring Boot/Spring Cloud應(yīng)用到阿里云
這篇文章主要介紹了在Eclipse中部署Spring Boot/Spring Cloud應(yīng)用到阿里云,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12基于SpringBoot創(chuàng)建Web頁面并熱更新的操作步驟
SpringBoot是一個用于快速開發(fā)單個微服務(wù)的框架,它基于 Spring 框架,簡化了Spring應(yīng)用的初始化過程和開發(fā)流程,本文給大家介紹了如何基于SpringBoot創(chuàng)建Web頁面并熱更新,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11SpringBoot在Controller層接收參數(shù)的n種姿勢(超詳細(xì))
這篇文章主要介紹了SpringBoot在Controller層接收參數(shù)的常用方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-01-01基于Java實現(xiàn)簡易的局域網(wǎng)對話系統(tǒng)
這篇文章主要介紹了基于Java實現(xiàn)的簡易的局域網(wǎng)對話系統(tǒng),文中的示例代碼對我們學(xué)習(xí)Java有一定的幫助,感興趣的小伙伴快來跟隨小編一起學(xué)習(xí)一下吧2021-12-12