实例介绍
【实例简介】
【实例截图】
【核心代码】
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MyComputer extends JFrame implements ActionListener { JTextArea memoryArea=new JTextArea(" ",1,3); JTextArea process=new JTextArea(" ",1,20); JTextArea dispresult=new JTextArea("0. ",1,20); Font font1=new Font("Vani",Font.BOLD,18 ); Font font2=new Font("Arial Rounded MT Bold",Font.PLAIN,10 ); Font font3=new Font("Arial Rounded MT Bold",Font.PLAIN,30 ); Font font4=new Font("Vani",Font.PLAIN,15); JButton[]jbuttons=new JButton[32]; double result=0,first=0,second=0; double memery=0; char firstsymbol='\0',secondsymbol='\0'; boolean prev=true,repeat=true,dot=true; MyComputer() { super("Calculator"); this.setTitle("计算器"); try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch(Exception e) { System.out.println(e); } JPanel resultField=new JPanel(); resultField.setLayout(new GridLayout(3,1)); JPanel buttonField=new JPanel(); Container all=getContentPane(); GridLayout grid1; grid1=new GridLayout(8,4,0,0); memoryArea.setFont(font3); dispresult.setFont(font3); process.setFont(font4); memoryArea.setEditable(false); process.setEditable(false); dispresult.setEditable(false); resultField.add(memoryArea); resultField.add(process); resultField.add(dispresult); all.add(resultField,"North"); String[]buttonname={"MS","MC","MR","M ","1/x","x2","√","㏒","%","sin","cos","tan","CE","C","back","÷","7","8","9","×","4","5","6","-","1","2","3","+","±","0",".","="}; buttonField.setLayout(grid1); //buttonField.setBackground(Color.LIGHT_GRAY); for(int i=0;i<4;i ) { for(int j=0;j<8;j ) { jbuttons[i*8 j]=new JButton(buttonname[i*8 j]); jbuttons[i*8 j].addActionListener(this); //jbuttons[i*8 j].setBackground(Color.red); buttonField.add(jbuttons[i*8 j]); } } for(int j=0;j<4;j ){ jbuttons[j].setFont(font2); //jbuttons[j].setBorderPainted(false); jbuttons[j].setBackground(new Color(250,250,250)); //jbuttons[j].setPreferredSize(new Dimension(40,40)); // jbuttons[j].setBorder(BorderFactory.createRaisedBevelBorder()); } for(int j=4;j<16;j ){ jbuttons[j].setFont(font4); // jbuttons[j].setBorderPainted(false); } for(int j=16;j<32;j ){ jbuttons[j].setFont(font1); //jbuttons[j].setBorderPainted(false); } jbuttons[15].setFont(font4); jbuttons[19].setFont(font4); all.add(buttonField,"Center"); setSize(422,405); setResizable(true); setVisible(true); //this.setResizable(false); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void pressNumber(String n) { process.setText(process.getText() n); if(prev) { dispresult.setText(n); prev=false; } else dispresult.append(n); } public boolean divide(double d) { if(d==0) { dispresult.setText("除数不能为0!"); prev=true; repeat=true; firstsymbol='\0'; secondsymbol='\0'; return true; } return false; } public void actionPerformed(ActionEvent e) { Object source=e.getSource(); if(source==jbuttons[12]) { dispresult.setText("0."); dot=true; prev=true; repeat=true; return; } if(source==jbuttons[13]) { process.setText(null); dispresult.setText("0."); firstsymbol='\0'; secondsymbol='\0'; prev=true; repeat=true; dot=true; return; } if(source==jbuttons[14]){ String text=process.getText(); int i=text.length(); if(i>0){ text=text.substring(0,i-1); if(text.length()==0){ dispresult.setText("0."); process.setText(""); firstsymbol='\0'; secondsymbol='\0'; first=second=0; prev=true; repeat=true; dot=true; } else{ dispresult.setText(text); process.setText(text); } } } if(source==jbuttons[1]) { memery=0; memoryArea.setText(" "); prev=true; repeat=false; dot=true; return; } if(source==jbuttons[29]) { pressNumber("0"); repeat=false; return; } if(source==jbuttons[24]) { pressNumber("1"); repeat=false; return; } if(source==jbuttons[25]) { pressNumber("2"); repeat=false; return; } if(source==jbuttons[4]) { double temp=1/Double.parseDouble(dispresult.getText()); dispresult.setText(String.valueOf(temp)); prev=true; repeat=false; dot=true; return; } if(source==jbuttons[5]) { double temp=Double.parseDouble(dispresult.getText())*Double.parseDouble(dispresult.getText()); dispresult.setText(String.valueOf(temp)); prev=true; repeat=false; dot=true; return; } if(source==jbuttons[6]) { if(-Double.parseDouble(dispresult.getText())<0){ double temp=Math.sqrt(Double.parseDouble(dispresult.getText())); dispresult.setText(String.valueOf(temp)); prev=true; repeat=false; dot=true; return; }else{ dispresult.setText("请输入有效数字"); } } if(source==jbuttons[7]) { if(-Double.parseDouble(dispresult.getText())<0){ double temp=Math.log10(Double.parseDouble(dispresult.getText())); dispresult.setText(String.valueOf(temp)); prev=true; repeat=false; dot=true; return; }else{ dispresult.setText("请输入有效数字"); } } if(source==jbuttons[8]) { double temp=Double.parseDouble(dispresult.getText())/100; dispresult.setText(String.valueOf(temp)); prev=true; repeat=false; dot=true; return; } if(source==jbuttons[9]) { double temp=Math.sin(Double.parseDouble(dispresult.getText())); dispresult.setText(String.valueOf(temp)); prev=true; repeat=false; dot=true; return; } if(source==jbuttons[10]) { double temp=Math.cos(Double.parseDouble(dispresult.getText())); dispresult.setText(String.valueOf(temp)); prev=true; repeat=false; dot=true; return; } if(source==jbuttons[2]) { if(memoryArea.getText().equals(" M ")) dispresult.setText(String.valueOf(memery)); prev=true; repeat=false; dot=true; return; } if(source==jbuttons[26]) { pressNumber("3"); repeat=false; return; } if(source==jbuttons[20]) { pressNumber("4"); repeat=false; return; } if(source==jbuttons[21]) { pressNumber("5"); repeat=false; return; } if(source==jbuttons[11]) { double temp=Math.tan(Double.parseDouble(dispresult.getText())); dispresult.setText(String.valueOf(temp)); prev=true; repeat=false; dot=true; return; } if(source==jbuttons[0]) { memery=Double.parseDouble(dispresult.getText()); if(memery!=0)memoryArea.setText("M"); prev=true; repeat=false; dot=true; return; } if(source==jbuttons[22]) { pressNumber("6"); repeat=false; return; } if(source==jbuttons[16]) { pressNumber("7"); repeat=false; return; } if(source==jbuttons[17]) { pressNumber("8"); repeat=false; return;} if(source==jbuttons[28]) { double temp=-Double.parseDouble(dispresult.getText()); dispresult.setText(String.valueOf(temp)); prev=true; repeat=false; dot=true; return;} if(source==jbuttons[3]) { memery =-Double.parseDouble(dispresult.getText()); if(memery!=0) memoryArea.setText("M"); prev=true; repeat=false; dot=true; return;} if(source==jbuttons[18]) { pressNumber("9"); repeat=false; return; } if(source==jbuttons[30]) { if(dot){ pressNumber("."); dot=false; repeat=false; } return; } if(source==jbuttons[31]) { second=Double.parseDouble(dispresult.getText()); dot=true; switch(secondsymbol) { case'*': second*=first; break; case'/': if(divide(second)) return; second=first/second; }//end of switch(secondsymbol) secondsymbol='\0'; switch(firstsymbol) { case' ': result =second; break; case'-': result-=second; break; case'*': result*=second; dispresult.setText(String.valueOf(result)); break; case'/': if(divide(second)) return; result/=second; }//end of switch(firstsymbol) if(firstsymbol!='\0') dispresult.setText(String.valueOf(result)); firstsymbol='\0'; prev=true; repeat=false; return; } if(source==jbuttons[27]) { process.setText(process.getText() " "); dot=true; if(repeat){ firstsymbol=' '; return; } second=Double.parseDouble(dispresult.getText()); switch(secondsymbol){ case'*': second*=first; break; case'/': if(divide(second))return; second=first/second; }//end of switch(secondsymbol) secondsymbol='\0'; switch(firstsymbol){ case'\0': result=second; firstsymbol=' '; break; case' ': result =second; dispresult.setText(String.valueOf(result)); break; case'-': result-=second; firstsymbol=' '; dispresult.setText(String.valueOf(result)); break; case'*': result*=second; firstsymbol=' '; dispresult.setText(String.valueOf(result)); break; case'/': if(divide(second))return; result/=second; firstsymbol=' '; dispresult.setText(String.valueOf(result)); }//end of switch(firstsymbol) prev=true; repeat=true; return; } if(source==jbuttons[23]) { process.setText(process.getText() "-"); dot=true; if(repeat){ firstsymbol='-'; return; } second=Double.parseDouble(dispresult.getText()); switch(secondsymbol){ case'*': second*=first; break; case'/': if(divide(second))return; second=first/second; } secondsymbol='\0'; switch(firstsymbol){ case'\0': result=second; firstsymbol='-'; break; case' ': result=second; firstsymbol='-'; dispresult.setText(String.valueOf(result)); break; case'-': result-=second; dispresult.setText(String.valueOf(result)); break; case'*': result*=second; firstsymbol='-'; dispresult.setText(String.valueOf(result)); break; case'/': if(divide(second))return; result/=second; firstsymbol='-'; dispresult.setText(String.valueOf(result)); } prev=true; repeat=true; return; } if(source==jbuttons[19]) { process.setText(process.getText() "*"); dot=true; if(repeat){ if(secondsymbol=='\0')firstsymbol='*'; else secondsymbol='*'; return; } second=Double.parseDouble(dispresult.getText()); switch(secondsymbol){ case'\0': switch(firstsymbol){ case'\0': firstsymbol='*'; result=second; break; case' ': case'-': first=second; secondsymbol='*'; break; case'*': result*=second; dispresult.setText(String.valueOf(result)); break; case'/': if(divide(second))return; result/=second; dispresult.setText(String.valueOf(result)); firstsymbol='*'; } break; case'*': first*=second; dispresult.setText(String.valueOf(first)); break; case'/': if(divide(second))return; first/=second; secondsymbol='*'; dispresult.setText(String.valueOf(first)); } prev=true; repeat=true; return; } if(source==jbuttons[15]) { process.setText(process.getText() "/"); dot=true; if(repeat){ if(secondsymbol=='\0')firstsymbol='/'; else secondsymbol='/'; return; } second=Double.parseDouble(dispresult.getText()); switch(secondsymbol){ case'\0': switch(firstsymbol){ case'\0': firstsymbol='/'; result=second; break; case' ': case'-': first=second; secondsymbol='/'; break; case'*': result*=second; firstsymbol='/'; dispresult.setText(String.valueOf(result)); break; case'/': if(divide(second))return; result/=second; dispresult.setText(String.valueOf(result)); }//end of switch(firstsymbol) break; case'*': first*=second; secondsymbol='/'; dispresult.setText(String.valueOf(first)); break; case'/': if(divide(second))return; first/=second; dispresult.setText(String.valueOf(first)); }//end of switch(firstsymbol) prev=true; repeat=true; return; } } public static void main(String args[]) { MyComputer mc=new MyComputer(); } }
好例子网口号:伸出你的我的手 — 分享!
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论