java简易计算器
2013-10-29 00:05
295 查看
这是练习的简易计算器,无优先级运算。
第一个是我自己写的,图省事用界面是用可视化拉的,附加功能,代码比较乱。后面有第二个老师给的范例,代码美观,方法较好。
package com.cn; import java.awt.BorderLayout; public class Test01 extends JFrame { private JPanel contentPane; private JTextField textField; private String s="",ssum=""; private int flag=0; private double num1,num2,sum; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { Test01 frame = new Test01(); frame.setVisible(true); frame.setResizable(false); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public Test01() { setTitle("\u8BA1\u7B97\u5668"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 248, 269); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane); JPanel panel = new JPanel(); contentPane.add(panel, BorderLayout.CENTER); panel.setLayout(new GridLayout(4, 4, 8, 8)); textField = new JTextField(); textField.setFont(new Font("宋体", Font.PLAIN, 20)); textField.setHorizontalAlignment(SwingConstants.RIGHT); textField.setColumns(23); JButton btnNewButton_1 = new JButton("7"); panel.add(btnNewButton_1); btnNewButton_1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { s=s+e.getActionCommand(); textField.setText(s); } }); JButton btnNewButton_2 = new JButton("8"); panel.add(btnNewButton_2); btnNewButton_2.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { s=s+e.getActionCommand(); textField.setText(s); } }); JButton btnNewButton_3 = new JButton("9"); panel.add(btnNewButton_3); btnNewButton_3.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { s=s+e.getActionCommand(); textField.setText(s); } }); JButton btnNewButton_4 = new JButton("/"); panel.add(btnNewButton_4); btnNewButton_4.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { flag=2; if(s!=""){ num1=Double.valueOf(s); s=""; }else{ num1=0; textField.setText("0"); } } }); JButton btnNewButton_6 = new JButton("4"); panel.add(btnNewButton_6); btnNewButton_6.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { s=s+e.getActionCommand(); textField.setText(s); } }); JButton btnNewButton = new JButton("5"); panel.add(btnNewButton); btnNewButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { s=s+e.getActionCommand(); textField.setText(s); } }); JButton btnNewButton_5 = new JButton("6"); panel.add(btnNewButton_5); btnNewButton_5.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { s=s+e.getActionCommand(); textField.setText(s); } }); JButton btnNewButton_12 = new JButton("*"); panel.add(btnNewButton_12); btnNewButton_12.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { flag=1; if(s!=""){ num1=Double.valueOf(s); s=""; }else{ num1=0; textField.setText("0"); } } }); JButton btnNewButton_9 = new JButton("1"); panel.add(btnNewButton_9); btnNewButton_9.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { s=s+e.getActionCommand(); textField.setText(s); } }); JButton btnNewButton_8 = new JButton("2"); panel.add(btnNewButton_8); btnNewButton_8.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { s=s+e.getActionCommand(); textField.setText(s); } }); JButton btnNewButton_7 = new JButton("3"); panel.add(btnNewButton_7); btnNewButton_7.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { s=s+e.getActionCommand(); textField.setText(s); } }); JButton btnNewButton_10 = new JButton("-"); panel.add(btnNewButton_10); btnNewButton_10.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { flag=4; if(s!=""){ num1=Double.valueOf(s); s=""; }else{ num1=0; textField.setText("0"); } } }); JButton btnNewButton_11 = new JButton("0"); panel.add(btnNewButton_11); btnNewButton_11.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { s=s+e.getActionCommand(); textField.setText(s); } }); JButton btnNewButton_13 = new JButton("."); panel.add(btnNewButton_13); btnNewButton_13.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { s=s+e.getActionCommand(); textField.setText(s); } }); JButton btnNewButton_14 = new JButton("="); panel.add(btnNewButton_14); btnNewButton_14.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { if(flag==1){ flag=0; num2=Double.valueOf(s); s=""; sum=num1*num2; ssum=String.valueOf(sum); textField.setText(ssum); }else if(flag==2){ flag=0; num2=Double.valueOf(s); s=""; sum=num1/num2; ssum=String.valueOf(sum); textField.setText(ssum); }else if(flag==3){ flag=0; num2=Double.valueOf(s); s=""; sum=num1+num2; ssum=String.valueOf(sum); textField.setText(ssum); }else if(flag==4){ flag=0; num2=Double.valueOf(s); s=""; sum=num1-num2; ssum=String.valueOf(sum); textField.setText(ssum); }else{ textField.setText("0"); } } }); JButton btnNewButton_15 = new JButton("+"); panel.add(btnNewButton_15); btnNewButton_15.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { flag=3; if(s!=""){ num1=Double.valueOf(s); s=""; }else{ num1=0; textField.setText("0"); } } }); JPanel panel_1 = new JPanel(); contentPane.add(panel_1, BorderLayout.NORTH); panel_1.add(textField); } }
第二个,老师给的范例,代码美观,呵呵。
package com.cn; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Jsq extends JFrame implements ActionListener { double num1, num2, num3; boolean end, add, mul, sub, div; JTextField t = new JTextField("0"); JButton b1 = new JButton("1"); JButton b2 = new JButton("2"); JButton b3 = new JButton("3"); JButton b4 = new JButton("+"); JButton b5 = new JButton("4"); JButton b6 = new JButton("5"); JButton b7 = new JButton("6"); JButton b8 = new JButton("-"); JButton b9 = new JButton("7"); JButton b10 = new JButton("8"); JButton b11 = new JButton("9"); JButton b12 = new JButton("*"); JButton b13 = new JButton("."); JButton b14 = new JButton("0"); JButton b15 = new JButton("="); JButton b16 = new JButton("/"); JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); public Jsq() { setTitle("计算器"); setResizable(false); setBounds(100, 100, 230, 230); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); add(p1, "North"); t.setEditable(false); t.setHorizontalAlignment(JTextField.CENTER); t.setColumns(18); t.setHorizontalAlignment(JTextField.RIGHT); p1.add(t); GridLayout l = new GridLayout(4, 0); l.setVgap(10); l.setHgap(10); p2.setLayout(l); add(p2, "Center"); p2.add(b1); p2.add(b2); p2.add(b3); p2.add(b4); p2.add(b5); p2.add(b6); p2.add(b7); p2.add(b8); p2.add(b9); p2.add(b10); p2.add(b11); p2.add(b12); p2.add(b13); p2.add(b14); p2.add(b15); p2.add(b16); JLabel ll = new JLabel(); ll.setPreferredSize(new Dimension(10, 0)); add(ll, "West"); JLabel rl = new JLabel(); rl.setPreferredSize(new Dimension(10, 0)); add(rl, "East"); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); b7.addActionListener(this); b8.addActionListener(this); b9.addActionListener(this); b10.addActionListener(this); b11.addActionListener(this); b12.addActionListener(this); b13.addActionListener(this); b14.addActionListener(this); b15.addActionListener(this); b16.addActionListener(this); setVisible(true); } public static void main(String args[]) { Jsq f = new Jsq(); } public void num(int i) { String s = String.valueOf(i); if (end) { // 判断操作数输入是否结束 t.setText("0"); end = false; } if ((t.getText()).equals("0")) { // 如果文本框的内容为零,则覆盖文本框的内容 t.setText(s); } else { // 如果文本框的内容不为零,则在内容后面添加数字 String str; str = t.getText() + s; t.setText(str); } } public void sign(int i) { if (i == 1) { add = true; mul = false; sub = false; div = false; } if (i == 2) { add = false; mul = false; sub = true; div = false; } if (i == 3) { add = false; mul = true; sub = false; div = false; } if (i == 4) { add = false; mul = false; sub = false; div = true; } num1 = Double.parseDouble(t.getText()); end = true; } public void point() { String s; if (t.getText().indexOf('.') < 0) { s = t.getText() + "."; t.setText(s); } } public void eql() { num2 = Double.parseDouble(t.getText()); if (add) num3 = num1 + num2; if (mul) num3 = num1 * num2; if (sub) num3 = num1 - num2; if (div) num3 = num1 / num2; String s = String.valueOf(num3); t.setText(s); end = true; } public void actionPerformed(ActionEvent e) { if (e.getSource() == b1) num(1); if (e.getSource() == b2) num(2); if (e.getSource() == b3) num(3); if (e.getSource() == b5) num(4); if (e.getSource() == b6) num(5); if (e.getSource() == b7) num(6); if (e.getSource() == b9) num(7); if (e.getSource() == b10) num(8); if (e.getSource() == b11) num(9); if (e.getSource() == b14) num(0); if (e.getSource() == b4) sign(1); if (e.getSource() == b8) sign(2); if (e.getSource() == b12) sign(3); if (e.getSource() == b16) sign(4); if (e.getSource() == b13) point(); if (e.getSource() == b15) eql(); } }
运行效果图:
相关文章推荐
- Java GUI做简易计算器
- 重头再来之项目练手-JAVA简易计算器
- Java简易计算器
- JAVA课程设计--简易计算器(201521123022 黄俊麟)
- Android制作简易计算器【JAVA】
- 利用java的swing组件制作简易计算器
- java小程序: 简易计算器
- 用java编写的简易计算器
- java编写的简易计算器
- 用Java编写的简易计算器
- 使用java语言编写简易计算器
- JAVA实现简易计算器
- Java简易计算器
- Java实现简易计算器
- 《Java 程序设计》课堂实践项目-简易计算器
- [java代码库]-简易计算器(第二种)
- Java简易计算器程序设计
- java实现简易计算器完整代码
- 用Java编写的简易计算器
- 简易计算器(Java)