Java swing 计算器
来源:互联网 发布:正大 数据恢复 编辑:程序博客网 时间:2024/05/18 00:44
import java.awt.*; import javax.swing.*; import java.awt.event.*; class calculation extends JFrame {public calculation() /*构造方法*/ {super("计数器"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); initTextPanel(); /*文本框*/ initControlPanel(); /*控制键*/ initKeyPanel(); /*数字和运算符*/ Container pane = getContentPane(); pane.setLayout(new BorderLayout()); pane.add(TextPanel,BorderLayout.NORTH); pane.add(ControlPanel,BorderLayout.CENTER); pane.add(KeyPanel,BorderLayout.SOUTH); pack(); try {UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); } catch(Exception ex) {;} /*设置Windons观感*/ SwingUtilities.updateComponentTreeUI(this); setResizable(false); setVisible(true); } private void initTextPanel() /*设置文本框*/ { TextPanel=new JPanel(); TextPanel.setLayout(new FlowLayout()); Resultarea =new JTextField("0",25); Resultarea.setEditable(false); /*设置不可编辑*/ Color color=Color.white; Resultarea.setBackground(color); /*颜色*/ Resultarea.setHorizontalAlignment(JTextField.RIGHT); /*设置显示位置*/ TextPanel.add(Resultarea); } private void initControlPanel() /*设置控制键*/ {ControlPanel=new JPanel(); ControlPanel.setLayout(new GridLayout(1,3,4,4)); JButton b1=new JButton("Backspace"); /*Backspace键*/ b1.setFont(font1); b1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {String s1=Resultarea.getText(); int l=s1.length(); Resultarea.setText(s1.substring(0 ,l-1)); } }); ControlPanel.add(b1); JButton b2=new JButton("CE"); /*CE键*/ b2.setFont(font1); b2.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {Resultarea.setText("0"); isNew=true; } }); ControlPanel.add(b2); JButton b3=new JButton("C"); /*C键*/ b3.setFont(font1); b3.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {Resultarea.setText("0"); pnum=""; operation=""; isNew=true; } }); ControlPanel.add(b3); } private void initKeyPanel() /*设置数字键和运算符键*/ {String key[] = {"7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x","0","+/-",".","+","="}; KeyPanel = new JPanel(); KeyPanel.setLayout(new GridLayout(4,5,4,4)); for(int i=0;i<20;i++) {String label = key[i]; JButton b = new JButton(label); b.setActionCommand(key[i]); b.setFont(font2); KeyPanel.add(b); b.addActionListener(new ActionListener() /*无名监听器*/ {public void actionPerformed(ActionEvent e) {Key_actionPerformed(e); } }); } } public void Key_actionPerformed(ActionEvent e) /*数字键和运算符键无名监听器*/ {String s=(e.getActionCommand()); String st=Resultarea.getText(); if(s.equals("0")) /*输入数为0*/ {if(st.equals("0")) return; else {if(!isNew) Resultarea.setText(st+"0"); else Resultarea.setText("0"); } isNew=false; return; } if(s.equals("+/-")) /*输入数为+/-*/ {double k=Double.parseDouble(st); {if(k!=0) display(-k); } return; } if(s.equals("1")||s.equals("2")||s.equals("3")||s.equals("4")||s.equals("5")||s.equals("6")||s.equals("7")||s.equals("8")||s.equals("9")) /*输入1-9*/ {if(!isNew) Resultarea.setText(st+s); else { Resultarea.setText(s); isNew=false; } return; } if(s.equals(".")) /*输入小数点*/ {if(Resultarea.getText().indexOf(".")==-1) /*不存在小数点*/ {if(isNew) {Resultarea.setText("0."); isNew=false; } else Resultarea.setText(st+"."); } return; } isNew=true; /*按下运算符,输入新的数*/ if(s.equals("=")) {compute(s); operation=""; } else {if(s.equals("+")||s.equals("-")||s.equals("*")||s.equals("/")) /*二目运算符号*/ {if(operation.equals("")) {pnum=Resultarea.getText(); operation=s; } else compute(s); } else /*一目运算*/ {Count count1=new Count(Double.parseDouble(st)); if(s.equals("sqrt")) { display(count1.sqrt()); } else {if(s.equals("1/x")) {if(st.equals("0")) {Resultarea.setText("除数不能为0."); operation=""; pnum=""; } else display(count1.reciprocal()); /*求倒数*/ } else display(Double.parseDouble(st)/100); /*输入%,使当前显示的值除于100*/ } } } } private void compute(String s) {if(s.equals("=")) {if(operation.equals("")) return; } double data1=Double.parseDouble(pnum); double data2=Double.parseDouble(Resultarea.getText()); Count count2=new Count(data1,data2); /*加减乘除计算*/ if(operation.equals("+")) display((count2.plus())); else {if(operation.equals("-")) display((count2.minus())); else {if(operation.equals("*")) display((count2.multiply())); else if(operation.equals("/")) {if(data2==0) {Resultarea.setText("除数不能为0"); operation=""; pnum=""; return; } else display((count2.divide())); } } } operation=""; /*符号为当前符*/ pnum=Resultarea.getText();/*运算数为当前文本数*/ } public void display(double result) /*显示输出方法*/ {int a=(int)result; if(a==result) Resultarea.setText(String.valueOf(a)); else Resultarea.setText(String.valueOf(result)); if(Resultarea.getText().equals("NaN")) Resultarea.setText("输入函数无效"); } private JPanel TextPanel; /*文本框棉板*/ private JTextField Resultarea; /*文本框*/ private JPanel ControlPanel; /*控制键键面板*/ private JPanel KeyPanel; /*数字键和运算符键面板*/ private Font font1=new Font("Dialog",0, 10); /*控制键字体*/ private Font font2 = new Font("Dialog",0,10); /*数字键和符号键字体*/ private String pnum=""; /*前操作数*/ private boolean isNew=true; /*控制是否是新数*/ private String operation=""; /*运算符*/ } class tester /*测试类*/ { public static void main(String[] args) { new calculation(); } }
0 0
- Java Swing计算器
- Java-Swing-计算器
- java Swing计算器
- Java swing 计算器
- java swing 计算器
- java 简易计算器Swing
- java swing实现简单计算器
- java计算器(Swing绘制界面)
- java swing示例(计算器)
- java swing入门 计算器布局
- Swing计算器
- swing计算器
- Java计算器源代码 awt+swing图形界面实现
- 用Java swing 编写简单的计算器
- java swing开发最简易计算器源代码
- 用Java swing制作简单的计算器
- Java swing实现简单计算器的开发
- Java Swing做的简易计算器
- C#:禁止在DataGridView控件中添加和删除行
- 《转自知乎》那些年入上百万的人是如何做到的?他们的平均年龄是多少?白手起家的到底多不多?
- jquery操作select(取值,设置选中)
- Java实例讲解-银行业务调度系统
- hdu 2072 单词数
- Java swing 计算器
- C#:使用Column和Rows属性添加数据
- TCP/IP,http,socket,长连接,短连接
- NSdate详解
- MySQL 更新和删除
- javascript获取select里面的各种值以及select里面的自定义
- Android创建快捷图标
- Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
- zuhfsafash