java简易计算器

这是练习的简易计算器,无优先级运算。
第一个是我自己写的,图省事用界面是用可视化拉的,附加功能,代码比较乱。后面有第二个老师给的范例,代码美观,方法较好。
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();
	}
}



运行效果图:

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值