java awt實(shí)現(xiàn)計(jì)算器功能
本文實(shí)例為大家分享了java awt實(shí)現(xiàn)計(jì)算器的具體代碼,供大家參考,具體內(nèi)容如下
上課老師演示了一遍他的寫(xiě)法,由于沒(méi)給代碼,因此按著他的思路擼了一遍,感覺(jué)還很簡(jiǎn)單。
代碼以及解釋如下:
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));//存儲(chǔ): 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)定義好了,思路也很簡(jiǎn)單:(1)JFrame定義一個(gè)大容器jf,jf= 1個(gè)顯示框(show)+5個(gè)容器,分別定義顯示框和容器, //(2)類似樹(shù)形添加元素的數(shù)據(jù)結(jié)構(gòu),為jf添加元素 //下面便是時(shí)間監(jiān)聽(tīng)了(又稱加載驅(qū)動(dòng)) 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ì)算器的精彩文章請(qǐng)查看《計(jì)算器專題》 ,更多精彩等你來(lái)發(fā)現(xiàn)!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Python結(jié)合百度語(yǔ)音識(shí)別實(shí)現(xiàn)實(shí)時(shí)翻譯軟件的實(shí)現(xiàn)2. 教你JS更簡(jiǎn)單的獲取表單中數(shù)據(jù)(formdata)3. 如何通過(guò)vscode運(yùn)行調(diào)試javascript代碼4. Python基于QQ郵箱實(shí)現(xiàn)SSL發(fā)送5. 測(cè)試模式 - XSL教程 - 56. 解決Java中的java.io.IOException: Broken pipe問(wèn)題7. JAVA抽象類及接口使用方法解析8. python如何寫(xiě)個(gè)俄羅斯方塊9. 《CSS3實(shí)戰(zhàn)》筆記--漸變?cè)O(shè)計(jì)(一)10. python b站視頻下載的五種版本
