java awt實(shí)現(xiàn)計(jì)算器功能
本文實(shí)例為大家分享了java awt實(shí)現(xiàn)計(jì)算器的具體代碼,供大家參考,具體內(nèi)容如下
上課老師演示了一遍他的寫法,由于沒給代碼,因此按著他的思路擼了一遍,感覺還很簡單。
代碼以及解釋如下:
import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; public class Caculate1 { static String s1=""; static String s2=""; static int f=9; static int num1=0,num2=0; public static void main(String[] args) { int x=0,y=0,z=0; JFrame jf=new JFrame( "我的計(jì)算器"); jf.setBounds(0,0,300,400); // jf.setBackground(bgColor); jf.setVisible(true); jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); JTextField show=new JTextField("0"); //此處為布局:也就是定義五個(gè)容器,(也可以理解為將定義的JFrame空間分為5個(gè)容器) JPanel jp1=new JPanel(new GridLayout(1,3));//存儲: JPanel jp2=new JPanel(new GridLayout(1,3)); JPanel jp3=new JPanel(new GridLayout(1,3)); JPanel jp4=new JPanel(new GridLayout(1,3)); JPanel jp5=new JPanel(new GridLayout(1,3)); JButton bt_add=new JButton("+"); JButton bt_sub=new JButton("-"); JButton bt_mul=new JButton("*"); JButton bt_div=new JButton("/"); JButton bt_7=new JButton("7"); JButton bt_8=new JButton("8"); JButton bt_9=new JButton("9"); JButton bt_4=new JButton("4"); JButton bt_5=new JButton("5"); JButton bt_6=new JButton("6"); JButton bt_1=new JButton("1"); JButton bt_2=new JButton("2"); JButton bt_3=new JButton("3"); JButton bt_0=new JButton("0"); JButton bt_c=new JButton("C"); JButton bt_equal=new JButton("="); jf.setLayout(new GridLayout(6,1)); //容器1 :添加 '+','-','*','/'按鈕 jp1.add(bt_add); jp1.add(bt_sub); jp1.add(bt_mul); jp1.add(bt_div); //容器2:添加'7','8','9'按鈕 jp2.add(bt_7); jp2.add(bt_8); jp2.add(bt_9); //容器3:添加'4','5','6'按鈕 jp3.add(bt_4); jp3.add(bt_5); jp3.add(bt_6); //容器4:添加'1','2','3'按鈕 jp4.add(bt_1); jp4.add(bt_2); jp4.add(bt_3); //容器5:添加'0','C','=' jp5.add(bt_0); jp5.add(bt_c); jp5.add(bt_equal); jf.add(show); jf.add(jp1); jf.add(jp2); jf.add(jp3); jf.add(jp4); jf.add(jp5); //元素已經(jīng)定義好了,思路也很簡單:(1)JFrame定義一個(gè)大容器jf,jf= 1個(gè)顯示框(show)+5個(gè)容器,分別定義顯示框和容器, //(2)類似樹形添加元素的數(shù)據(jù)結(jié)構(gòu),為jf添加元素 //下面便是時(shí)間監(jiān)聽了(又稱加載驅(qū)動) bt_9.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { s1=s1+9; show.setText(s1); } }); bt_8.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { s1=s1+8; show.setText(s1); } }); bt_7.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { s1=s1+7; show.setText(s1); } }); bt_6.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { s1=s1+6; show.setText(s1); } }); bt_5.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { s1=s1+5; show.setText(s1); } }); bt_4.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { s1=s1+4; show.setText(s1); } }); bt_3.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { s1=s1+3; show.setText(s1); } }); bt_0.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { s1=s1+0; show.setText(s1); } }); bt_2.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { s1=s1+2; show.setText(s1); } }); bt_1.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { s1=s1+1; show.setText(s1); } }); bt_0.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { s1=s1+0; show.setText(s1); } }); bt_equal.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { num1=Integer.valueOf(s2); num2=Integer.valueOf(s1); int z=0; char fg=' '; switch(f){ case 0: z=num1+num2; fg='+'; break; case 1: z=num1-num2; fg='-'; break; case 2: z=num1*num2; fg='*'; break; case 3: fg='/'; if(num2==0) num2=num2+1; z=num1/num2; break; default: break; } show.setText(s2+" "+fg+" "+s1+" = "+z); } }); bt_add.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { s2=s1; s1=""; f=0; show.setText(s2+"+"); } }); bt_sub.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub s2 = s1; s1 = ""; f = 1; show.setText(s2 + " - "); } }); bt_mul.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub s2 = s1; s1 = ""; f = 2; show.setText(s2 + " * "); } }); bt_div.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub s2 = s1; s1 = ""; f = 3; show.setText(s2 + " / "); } }); bt_c.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub s2 = ""; s1 = ""; num1 = 0; num2 = 0; f = 9; show.setText("0"); } }); } }
關(guān)于計(jì)算器的精彩文章請查看《計(jì)算器專題》 ,更多精彩等你來發(fā)現(xiàn)!
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java虛擬機(jī)JVM類加載機(jī)制(從類文件到虛擬機(jī))
所謂的類加載機(jī)制就是虛擬機(jī)將class文件加載到內(nèi)存,并對數(shù)據(jù)進(jìn)行驗(yàn)證,轉(zhuǎn)換解析和初始化,形成虛擬機(jī)可以直接使用的java類型,本文給大家介紹類加載機(jī)制過程從類文件到虛擬機(jī)的詳細(xì)說明,感興趣的朋友跟隨小編一起看看吧2021-06-06Java實(shí)現(xiàn)拓?fù)渑判蛩惴ǖ氖纠a
在圖論中,拓?fù)渑判颍═opological Sorting)是一個(gè)有向無環(huán)圖(DAG, Directed Acyclic Graph)的所有頂點(diǎn)的線性序列。本文將為大家講講拓?fù)渑判蛩惴ǖ脑砑皩?shí)現(xiàn),需要的可以參考一下2022-07-07Mybatis如何實(shí)現(xiàn)@Select等注解動態(tài)組合SQL語句
這篇文章主要介紹了Mybatis如何實(shí)現(xiàn)@Select等注解動態(tài)組合SQL語句,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07Java+MySQL實(shí)現(xiàn)設(shè)計(jì)優(yōu)惠券系統(tǒng)
這篇文章主要介紹了Java+MySQL實(shí)現(xiàn)設(shè)計(jì)優(yōu)惠券系統(tǒng),文章基于Java與MySQL的相關(guān)資料展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-05-05idea本地jar使用maven打包本地依賴實(shí)現(xiàn)自動編譯到項(xiàng)目里的操作
這篇文章主要介紹了idea本地jar使用maven打包本地依賴實(shí)現(xiàn)自動編譯到項(xiàng)目里的操作,本文通過示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-05-05Java實(shí)現(xiàn)堆排序(大根堆)的示例代碼
這篇文章主要介紹了Java實(shí)現(xiàn)堆排序(大根堆)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10