⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calculator.java

📁 用Java编写的计算器程序
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package object.oriented.work;

import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;

public class Calculator extends JFrame implements ActionListener {//这里我把JFrame写成Frame,这个错误找了好久
	JFrame frame;

	private JButton jia = new JButton("+");
	private JButton jian = new JButton("-");
	private JButton cheng = new JButton("*");
	private JButton chu = new JButton("/");
	private JButton qiuyi = new JButton("%");
	private JButton deng = new JButton("=");
	private JButton fu = new JButton("+/-");
	private JButton dian = new JButton(".");
	private JButton kai = new JButton("sqrt");
	private JButton diao = new JButton("1/x");
	private JButton aa = new JButton("A");
	private JButton bb = new JButton("B");
	private JButton cc = new JButton("C");
	private JButton dd = new JButton("D");
	private JButton ee = new JButton("E");
	private JButton ff = new JButton("F");

	private TextField k1 = new TextField();
	private objConversion convert = new objConversion();

	JMenuItem copy, paste, s, t, help, about, me;
	JRadioButton sixteen, ten, eight, two;
	JButton backspace, ce, c, num0, num1, num2, num3, num4, num5, num6, num7,
			num8, num9;
	Container cp;

	JTextField text;
	String copycontent = "";
	boolean clickable = true, clear = true;
	int all = 0;
	double qian;
	String fuhao;
	int jin = 10, first = 1;

	public Calculator() {
		setTitle("计算器-杨彩制作");
		setSize(400, 300);
		setLocation(250, 200);
		text = new JTextField(25);
		// text.setEnabled(false);
		text.setText("0.");
		text.setHorizontalAlignment(JTextField.RIGHT);//从右到左

		JPanel cp1 = new JPanel();
		JPanel cp2 = new JPanel();
		JPanel cp3 = new JPanel();

		cp = getContentPane();
		cp.add(cp1, "North");
		cp.add(cp2, "Center");
		cp.add(cp3, "South");

		cp1.setLayout(new GridLayout(1, 6));
		cp2.setLayout(new GridLayout(2, 4));
		cp3.setLayout(new GridLayout(6, 6));

		sixteen = new JRadioButton("十六进制");
		sixteen.setVisible(false);
		ten = new JRadioButton("十进制", true);
		ten.setVisible(false);
		eight = new JRadioButton("八进制");
		eight.setVisible(false);
		two = new JRadioButton("二进制");
		two.setVisible(false);
		sixteen.addActionListener(this);
		ten.addActionListener(this);
		eight.addActionListener(this);
		two.addActionListener(this);
		ButtonGroup btg = new ButtonGroup();

		btg.add(sixteen);
		btg.add(ten);
		btg.add(eight);
		btg.add(two);

		JTextField t3 = new JTextField(25);
		cp1.add(text);
		// text.setEnabled(false);
		text.setEditable(false);
		text.setBackground(new Color(255, 255, 255));

		cp2.add(sixteen);
		cp2.add(ten);
		cp2.add(eight);
		cp2.add(two);

		backspace = new JButton("Backspace");
		backspace.setForeground(new Color(255, 0, 0));
		backspace.addActionListener(this);
		ce = new JButton("CE");
		ce.setForeground(new Color(255, 0, 0));
		ce.addActionListener(this);
		c = new JButton("C");
		c.setForeground(new Color(255, 0, 0));
		c.addActionListener(this);
		k1.setVisible(false);
		cp2.add(k1);
		cp2.add(backspace);
		cp2.add(ce);
		cp2.add(c);

		num0 = new JButton("0");
		num1 = new JButton("1");
		num2 = new JButton("2");
		num3 = new JButton("3");
		num4 = new JButton("4");
		num5 = new JButton("5");
		num6 = new JButton("6");
		num7 = new JButton("7");
		num8 = new JButton("8");
		num9 = new JButton("9");

		cp3.add(num7);
		num7.addActionListener(this);
		cp3.add(num8);
		num8.addActionListener(this);
		cp3.add(num9);
		num9.addActionListener(this);
		cp3.add(chu);
		chu.setForeground(new Color(255, 0, 0));
		chu.addActionListener(this);
		cp3.add(kai);
		kai.addActionListener(this);
		cp3.add(num4);
		num4.addActionListener(this);
		cp3.add(num5);
		num5.addActionListener(this);
		cp3.add(num6);
		num6.addActionListener(this);
		cp3.add(cheng);
		cheng.setForeground(new Color(255, 0, 0));
		cheng.addActionListener(this);
		cp3.add(qiuyi);
		qiuyi.addActionListener(this);
		cp3.add(num1);
		num1.addActionListener(this);
		cp3.add(num2);
		num2.addActionListener(this);
		cp3.add(num3);
		num3.addActionListener(this);
		cp3.add(jian);
		jian.setForeground(new Color(255, 0, 0));
		jian.addActionListener(this);
		cp3.add(diao);
		diao.addActionListener(this);
		cp3.add(num0);
		num0.addActionListener(this);
		cp3.add(fu);
		fu.addActionListener(this);
		cp3.add(dian);
		dian.addActionListener(this);
		cp3.add(jia);
		jia.setForeground(new Color(255, 0, 0));
		jia.addActionListener(this);
		cp3.add(deng);
		deng.setForeground(new Color(255, 0, 0));
		deng.addActionListener(this);
		cp3.add(aa);
		aa.addActionListener(this);
		cp3.add(bb);
		bb.addActionListener(this);
		cp3.add(cc);
		cc.addActionListener(this);
		cp3.add(dd);
		dd.addActionListener(this);
		cp3.add(ee);
		ee.addActionListener(this);
		cp3.add(ff);
		ff.addActionListener(this);
		aa.setVisible(false);
		bb.setVisible(false);
		cc.setVisible(false);
		dd.setVisible(false);
		ee.setVisible(false);
		ff.setVisible(false);

		JMenuBar mainMenu = new JMenuBar();
		setJMenuBar(mainMenu);
		JMenu editMenu = new JMenu("编辑");
		JMenu viewMenu = new JMenu("查看");
		JMenu helpMenu = new JMenu("帮助");
		mainMenu.add(editMenu);
		mainMenu.add(viewMenu);
		mainMenu.add(helpMenu);

		copy = new JMenuItem(" 复制");
		paste = new JMenuItem(" 粘贴");
		KeyStroke copyks = KeyStroke.getKeyStroke(KeyEvent.VK_C,
				Event.CTRL_MASK);
		copy.setAccelerator(copyks);//设置退出菜单选项加上快捷键
		KeyStroke pasteks = KeyStroke.getKeyStroke(KeyEvent.VK_V,
				Event.CTRL_MASK);
		paste.setAccelerator(pasteks);//设置退出菜单选项加上快捷键
		editMenu.add(copy);
		editMenu.add(paste);
		copy.addActionListener(this);
		paste.addActionListener(this);

		t = new JMenuItem("●标准型");
		s = new JMenuItem("   科学型");
		viewMenu.add(t);
		viewMenu.add(s);
		t.addActionListener(this);
		s.addActionListener(this);

		help = new JMenuItem(" 帮助主题");
		about = new JMenuItem(" 关于计算器");
		me = new JMenuItem(" 作者主页");
		helpMenu.add(help);
		helpMenu.add(about);
		helpMenu.add(me);
		help.addActionListener(this);
		about.addActionListener(this);
		me.addActionListener(this);

		addWindowListener(new WindowDestroyer());//结束窗口
	}

	public void actionPerformed(ActionEvent e)

	{//响应动作代码

		if (first == 1)
			text.setText("");
		first = 0;//第一次把文本框0.清空

		Object temp = e.getSource();

		if (temp == copy) {
			copycontent = text.getText();
		}
		if (temp == paste) {
			text.setText(text.getText() + copycontent);

		}
		if (temp == t) {//标准

			sixteen.setVisible(false);
			ten.setVisible(false);
			eight.setVisible(false);
			two.setVisible(false);
			t.setText("●标准型");
			s.setText("    科学型");
			aa.setVisible(false);
			bb.setVisible(false);
			cc.setVisible(false);
			dd.setVisible(false);
			ee.setVisible(false);
			ff.setVisible(false);
		}
		if (temp == s) {//科学

			sixteen.setVisible(true);
			ten.setVisible(true);
			eight.setVisible(true);
			two.setVisible(true);
			t.setText("   标准型");
			s.setText("●科学型");
			aa.setVisible(true);
			bb.setVisible(true);
			cc.setVisible(true);
			dd.setVisible(true);
			ee.setVisible(true);
			ff.setVisible(true);
			aa.setEnabled(false);
			bb.setEnabled(false);
			cc.setEnabled(false);
			dd.setEnabled(false);
			ee.setEnabled(false);
			ff.setEnabled(false);

		}
		if (temp == help) { //打开系统帮助文件 要查资料
			try {
				String filePath = "C:/WINDOWS/Help/calc.chm";
				Runtime.getRuntime().exec("cmd.exe /c " + filePath);

			} catch (Exception eeee) {
				System.out.println("打开系统的计算器出错");
			}
		}
		if (temp == about) {
			JOptionPane
					.showMessageDialog(
							frame,
							"      Java计算器\n      杨彩 制作\n\n http://blog.sina.com.cn/m/yangcai",
							"关于计算器", JOptionPane.INFORMATION_MESSAGE);
			;
		}
		if (temp == me) {
			try {
				Process p = Runtime.getRuntime().exec(
						"explorer http://blog.sina.com.cn/m/yangcai");
			} catch (Exception eeee) {
				System.out.println("打开指定网页出错");
			}
		}

		try {
			if (temp == sixteen) {
				String hex = text.getText();
				int inthex = Integer.parseInt(hex, jin);//先把数变为10进制  
				text.setText(convert.decHex(inthex));
				jin = 16;
				aa.setEnabled(true);
				bb.setEnabled(true);
				cc.setEnabled(true);
				dd.setEnabled(true);
				ee.setEnabled(true);
				ff.setEnabled(true);
				num2.setEnabled(true);
				num3.setEnabled(true);
				num4.setEnabled(true);
				num5.setEnabled(true);
				num6.setEnabled(true);
				num7.setEnabled(true);
				num8.setEnabled(true);
				num9.setEnabled(true);

			}
			if (temp == eight) {
				String oct = text.getText();
				int intoct = Integer.parseInt(oct, jin);
				text.setText(convert.decOct(intoct));
				jin = 8;

				aa.setEnabled(false);
				bb.setEnabled(false);
				cc.setEnabled(false);
				dd.setEnabled(false);
				ee.setEnabled(false);
				ff.setEnabled(false);
				num2.setEnabled(true);
				num3.setEnabled(true);
				num4.setEnabled(true);
				num5.setEnabled(true);
				num6.setEnabled(true);
				num7.setEnabled(true);
				num8.setEnabled(false);
				num9.setEnabled(false);
			}
			if (temp == two) {
				String bin = text.getText();
				int intbin = Integer.parseInt(bin, jin);
				text.setText(convert.decBin(intbin));
				jin = 2;

				aa.setEnabled(false);
				bb.setEnabled(false);
				cc.setEnabled(false);
				dd.setEnabled(false);
				ee.setEnabled(false);
				ff.setEnabled(false);
				num2.setEnabled(false);
				num3.setEnabled(false);
				num4.setEnabled(false);
				num5.setEnabled(false);
				num6.setEnabled(false);
				num7.setEnabled(false);
				num8.setEnabled(false);
				num9.setEnabled(false);
			}
			if (temp == ten) {
				String dec = text.getText();
				int intdec = Integer.parseInt(dec, jin);
				// text.setText(convert.decDec(intdec));  //本句会把123变成321
				text.setText(intdec + "");
				jin = 10;
				aa.setEnabled(false);
				bb.setEnabled(false);
				cc.setEnabled(false);
				dd.setEnabled(false);
				ee.setEnabled(false);
				ff.setEnabled(false);
				num2.setEnabled(true);
				num3.setEnabled(true);
				num4.setEnabled(true);
				num5.setEnabled(true);
				num6.setEnabled(true);
				num7.setEnabled(true);
				num8.setEnabled(true);
				num9.setEnabled(true);
			}
		} catch (Exception ee) {
			System.out.println("转换出错,可能你没有输入任何字符");
			text.setText("转换出错");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -