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

📄 caculator未解决十进制以外的数值输入和计算问题.java

📁 Java 语言实现的计算器
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package caculator;/** * * @author Yuyin Li */import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.lang.*;import java.math.*;//**********************[窗体及功能类]***********************class Window extends JFrame implements ActionListener,KeyListener,ItemListener{	double pi=3.1415926535897932384626433832795;	//************--------菜单条相关声明--------**************	JMenuBar menubar;	JMenu menu0,menu1,menu2,menu3;	JMenuItem item0,item1,item2,item3,item4,item5,item6,item7;        //item0:退出;item1:复制;item2:粘贴;item3:标准型;item4:科学型;item5:帮助;item6:关于	//**************--------布局相关声明--------**************	Box basebox;	JPanel panel,panel1,panel2,panel3,panel4,panel22,panel5,panel51,panel52,panel6;	//************--------文本框相关声明--------**************	JTextField t_show;//主显示框	JLabel Null,Null1,Null2,Null3,Null4,Null5;//为布局而设的空插件	JTextField t_M,t_K,t_K0,t_K1,t_K2;//t_M指示储存器状态,t_K指示括号状态        JTextField b_Ave,b_Sum,b_s,b_Dat;	//************----------按钮相关声明--------**************	JButton b_Backspace,b_CE,b_C;//操作区按钮	JButton b_MC,b_MR,b_MS,b_Madd;//存储器区按钮	JButton b_0,b_1,b_2,b_3,b_4,b_5,b_6,b_7,b_8,b_9;//数字区按键	JButton b_add,b_sub,b_mul,b_div,b_sqrt,b_dao,b_sign,b_dian,b_deng,b_100;//标准操作按键	JButton Mod,And,Or,Xor,Lsh,Not,Int,A,B,C,D,E,F;        JButton b_xy,b_ln,b_log,b_pi,b_x2,b_x3,b_sin,b_cos,b_tan,b_k1,b_k2,b_n,b_FE,b_dms,b_Exp,b_Sta;//科学操作按键	ButtonGroup group1,group2;//单选域	JRadioButton hex,dec,oct,b,j,h,td;//单选扭,hex是十六进制,dec是十进制,oct是八进制,b是二进制,j是角度,h是弧度,td是梯度	//************----------数据相关声明--------**************	double d[]={0,0,0,0,0,0,0,0,0,0,0};//数据1~10	String t[]={"0","0","0","0","0","0","0","0","0","0","0"};//数据相应的字符串型	//记录运算符 mark指示当前是那个操作符1-mark1,2-mark2. mark[1],[2]表示 0无 1加 2减 3乘 4除	int mark=1,marks[]={0,0,0,0,0};	int state=1;//记录状态 说明现在输入的是第几个数	int start=0;//记录状态 0说明第一次输入,数字替换以前内容,1说明在尾部添加数字	int deng=0;//记录是否进行过'='运算 0没有 1有	int k1=0,k2=0;//记录括号状态	double Mdate=0;//M储存器内数值	int radio=1;//1记录单选钮选中“角度”,2-弧度        int b_jz=0;        	Window(String s,int style)//style表征窗体类型 1代表标准型 2代表科学型	{		//**************--------窗体设置---------***************		super(s);		if(style==1)			setBounds(100,100,380,270);		else			setBounds(100,100,720,330);		setVisible(true);		setResizable(false);		//**************-------菜单条设置--------***************		menubar = new JMenuBar();                menu0 = new JMenu("文件");                menu0.setMnemonic(KeyEvent.VK_F);//设置快捷键ALT+E                item0 = new JMenuItem("退出",new ImageIcon("exit.jpg"));                item0.addActionListener(this);		menu1 = new JMenu("编辑(E)");		menu1.setMnemonic(KeyEvent.VK_E);//设置快捷键Alt+E		item1 = new JMenuItem("复制",new ImageIcon("copy.jpg"));		item1.addActionListener(this);		item2 = new JMenuItem("粘贴",new ImageIcon("cv.jpg"));		item2.addActionListener(this);		item1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));		item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));		menu2 = new JMenu("查看(V)");		menu2.setMnemonic(KeyEvent.VK_V);//设置快捷键Alt+V		item3 = new JMenuItem("标准型",new ImageIcon("a.jpg"));		item3.addActionListener(new ActionListener() { 			public void actionPerformed(ActionEvent e) { 				dispose();//释放当前窗口				new Window("标准型计算器",1).setVisible(true); 			} 		}); 		item4 = new JMenuItem("科学型",new ImageIcon("b.jpg"));		item4.addActionListener(new ActionListener() { 			public void actionPerformed(ActionEvent e) { 				dispose();//释放当前窗口				new Window("科学型计算器",2).setVisible(true); 			} 		}); 		menu3 = new JMenu("帮助(H)");		menu3.setMnemonic(KeyEvent.VK_H);//设置快捷键Alt+H		item5 = new JMenuItem("帮助",new ImageIcon("help.jpg"));		item5.addActionListener(this);		item6 = new JMenuItem("关于",new ImageIcon("about.jpg"));		item6.addActionListener(this);                item7 = new JMenuItem("主页",new ImageIcon("mainweb.jpg"));		item7.addActionListener(this);		menu0.add(item0);//将item0添加到下拉菜单里去                menu1.add(item1);//将item1添加到下拉菜单里面去		menu1.addSeparator();//设置分割线		menu1.add(item2);		menu2.add(item3);		menu2.addSeparator();		menu2.add(item4);		menu3.add(item5);		menu3.addSeparator();		menu3.add(item6);                menu3.addSeparator();                menu3.add(item7);                menubar.add(menu0);		menubar.add(menu1);		menubar.add(menu2);		menubar.add(menu3);		setJMenuBar(menubar);		//**************---------面板设置---------**************		basebox = Box.createVerticalBox();//设置了一个窗口面板,就是计算器的菜单栏下面的长方形区域		FlowLayout flow = new FlowLayout();		flow.setAlignment(FlowLayout.RIGHT);		panel1 = new JPanel();		if (style==1)			t_show = new JTextField(32);//显示文本框		else			t_show = new JTextField(63);//显示文本框		t_show.setText("0");		t_show.setEditable(false);		t_show.setHorizontalAlignment(SwingConstants.RIGHT);//显示右对齐		t_show.setBackground(Color.white);		panel1.setLayout(flow);		panel1.add(t_show);		basebox.add(panel1);				panel2 = new JPanel();		panel2.setLayout(flow);		t_K2 = new JTextField(5);		t_K2.setHorizontalAlignment(SwingConstants.CENTER);//显示右对齐		t_K2.setText(" -Inv ");//科学型计算器空按钮		t_K2.setEditable(false);                t_K1 = new JTextField(5);		t_K1.setHorizontalAlignment(SwingConstants.CENTER);//显示右对齐		t_K1.setText(" -Hyp ");//科学型计算器空按钮		t_K1.setEditable(false);                t_K0 = new JTextField(5);		t_K0.setHorizontalAlignment(SwingConstants.CENTER);//显示右对齐		t_K0.setText("  —  ");//科学型计算器空按钮		t_K0.setEditable(false);                t_K = new JTextField(5);		t_K.setHorizontalAlignment(SwingConstants.CENTER);//显示右对齐		t_K.setText("  —  ");//科学型计算器空按钮		t_K.setEditable(false);		Null = new JLabel("                                                                                 ");                Null1 = new JLabel("                              ");                Null2 = new JLabel("                                                         ");                Null3 = new JLabel("  ");                Null4 = new JLabel("  ");                Null5 = new JLabel("   ");		t_M = new JTextField(5);		t_M.setHorizontalAlignment(SwingConstants.CENTER);//显示右对齐		t_M.setText("  —  ");//标准型型计算器的空按钮		t_M.setEditable(false);                                 b_Ave = new JTextField(5);		b_Ave.setHorizontalAlignment(SwingConstants.CENTER);//显示右对齐		b_Ave.setText("  Ave  ");//		b_Ave.setEditable(false);                 b_Sum = new JTextField(5);		b_Sum.setHorizontalAlignment(SwingConstants.CENTER);//显示右对齐		b_Sum.setText("  Sum  ");//		b_Sum.setEditable(false);                 b_s = new JTextField(5);		b_s.setHorizontalAlignment(SwingConstants.CENTER);//显示右对齐		b_s.setText("   s   ");//		b_s.setEditable(false);                 b_Dat = new JTextField(5);		b_Dat.setHorizontalAlignment(SwingConstants.CENTER);//显示右对齐		b_Dat.setText("  Dat  ");//		b_Dat.setEditable(false);                		b_Backspace = new JButton(" Backspace ");                b_Backspace.setText("<html><font color=red>Backspace</font></html>");		b_CE = new JButton("   CE   ");                b_CE.setText("<html><font color=red>CE</font></html>");		b_C = new JButton("    C    ");                b_C.setText("<html><font color=red>C</font></html>");		panel22 = new JPanel();		panel22.setLayout(new GridLayout(1,5,2,1));		if(style==2)		{			group1 = new ButtonGroup();                        hex = new JRadioButton("十六进制",false);                        hex.addItemListener(this);hex.addActionListener(this);hex.addKeyListener(this);                        dec = new JRadioButton("十进制",true);                        dec.addItemListener(this);dec.addActionListener(this);dec.addKeyListener(this);                        oct = new JRadioButton("八进制",false);                        oct.addItemListener(this);oct.addActionListener(this);oct.addKeyListener(this);                        b = new JRadioButton("二进制",false);                        b.addItemListener(this);b.addActionListener(this);b.addKeyListener(this);                        group1.add(hex);                        group1.add(dec);                        group1.add(oct);                        group1.add(b);                        group2 = new ButtonGroup();			j = new JRadioButton("角度",true);			j.addItemListener(this);j.addKeyListener(this);			h = new JRadioButton("弧度",false);			h.addItemListener(this);h.addKeyListener(this);                        td = new JRadioButton("梯度",false);			td.addItemListener(this);td.addKeyListener(this);			group2.add(j);			group2.add(h);                        group2.add(td);			panel22.add(t_K2);                        panel22.add(t_K1);                        panel22.add(t_K);		}		panel22.add(t_M);				if(style==2)		{                                     panel5 = new JPanel();                    panel5.setLayout(flow);                    panel5.add(hex);                    panel5.add(dec);                    panel5.add(oct);                    panel5.add(b);                    panel5.add(Null);                    panel5.add(j);                    panel5.add(h);                    panel5.add(td);                    basebox.add(panel5);                                        panel6 = new JPanel();		    panel6.setLayout(flow);                    panel6.add(t_K0);                    panel6.add(Null5);                    panel6.add(panel22);		    panel6.add(Null2);		    panel6.add(b_Backspace);		    panel6.add(b_CE);		    panel6.add(b_C);                    basebox.add(panel6);                }                else                 {                    panel2.add(panel22);                    panel2.add(Null1);                    panel2.add(b_Backspace);		    panel2.add(b_CE);		    panel2.add(b_C);                    basebox.add(panel2);                }		panel = new JPanel();		panel3 = new JPanel();				//声明添加所需按钮		b_MC = new JButton("MC");                b_MC.setText("<html><font color=red>MC</font></html>");		b_MR = new JButton("MR");                b_MR.setText("<html><font color=red>MR</font></html>");		b_MS = new JButton("MS");                b_MS.setText("<html><font color=red>MS</font></html>");		b_Madd = new JButton("M+");                b_Madd.setText("<html><font color=red>M+</font></html>");		b_0 = new JButton("0");                b_0.setText("<html><font color=blue>0</font></html>");		b_1 = new JButton("1");                b_1.setText("<html><font color=blue>1</font></html>");		b_2 = new JButton("2");                b_2.setText("<html><font color=blue>2</font></html>");		b_3 = new JButton("3");                b_3.setText("<html><font color=blue>3</font></html>");		b_4 = new JButton("4");                b_4.setText("<html><font color=blue>4</font></html>");		b_5 = new JButton("5");                b_5.setText("<html><font color=blue>5</font></html>");		b_6 = new JButton("6");                b_6.setText("<html><font color=blue>6</font></html>");		b_7 = new JButton("7");                b_7.setText("<html><font color=blue>7</font></html>");		b_8 = new JButton("8");                b_8.setText("<html><font color=blue>8</font></html>");		b_9 = new JButton("9");                b_9.setText("<html><font color=blue>9</font></html>");		b_add = new JButton("+");                b_add.setText("<html><font color=red>+</font></html>");		b_sub = new JButton("-");                b_sub.setText("<html><font color=red>-</font></html>");		b_mul = new JButton("×");                b_mul.setText("<html><font color=red>×</font></html>");		b_div = new JButton("/");                b_div.setText("<html><font color=red>/</font></html>");		b_deng = new JButton("=");                b_deng.setText("<html><font color=red>=</font></html>");		b_dian = new JButton(".");                b_dian.setText("<html><font color=blue>.</font></html>");		b_sign = new JButton("+/-");                b_sign.setText("<html><font color=blue>+/-</font></html>");		b_100 = new JButton("%");                b_100.setText("<html><font color=blue>%</font></html>");		b_dao = new JButton("1/x");                b_dao.setText("<html><font color=blue>1/x</font></html>");		b_sqrt = new JButton("sqrt");                b_sqrt.setText("<html><font color=blue>sqrt</font></html>");                Mod = new JButton("Mod");                Mod.setText("<html><font color=red>Mod</font></html>");                And = new JButton("And");                And.setText("<html><font color=red>And</font></html>");                Or = new JButton("Or");                Or.setText("<html><font color=red>Or</font></html>");                Xor = new JButton("Xor");                Xor.setText("<html><font color=red>Xor</font></html>");                Lsh = new JButton("Lsh");                Lsh.setText("<html><font color=red>Lsh</font></html>");                Not = new JButton("Not");                Not.setText("<html><font color=red>Not</font></html>");                Int = new JButton("Int");                A = new JButton("A");                B = new JButton("B");                C = new JButton("C");                D = new JButton("D");                E = new JButton("E");                F = new JButton("F");		                if (style == 2)                {                    panel3.setLayout(new GridLayout(5,6,3,2));                    panel3.add(b_7);  panel3.add(b_8);   panel3.add(b_9);   panel3.add(b_div);  panel3.add(Mod) ;   panel3.add(And);  		    panel3.add(b_4);  panel3.add(b_5);   panel3.add(b_6);   panel3.add(b_mul);  panel3.add(Or);     panel3.add(Xor);		    panel3.add(b_1);  panel3.add(b_2);   panel3.add(b_3);   panel3.add(b_sub);  panel3.add(Lsh);    panel3.add(Not);		    panel3.add(b_0);  panel3.add(b_sign);panel3.add(b_dian);panel3.add(b_add);  panel3.add(b_deng); panel3.add(Int);                    panel3.add(A);    panel3.add(B);     panel3.add(C);     panel3.add(D);      panel3.add(E);      panel3.add(F);                }                else                 {                       panel3.setLayout(new GridLayout(4,6,3,2));                    panel3.add(b_MC);  panel3.add(b_7);  panel3.add(b_8);   panel3.add(b_9);   panel3.add(b_div);  panel3.add(b_sqrt);		    panel3.add(b_MR);  panel3.add(b_4);  panel3.add(b_5);   panel3.add(b_6);   panel3.add(b_mul);panel3.add(b_100);		    panel3.add(b_MS);  panel3.add(b_1);  panel3.add(b_2);   panel3.add(b_3);   panel3.add(b_sub);  panel3.add(b_dao);		    panel3.add(b_Madd);panel3.add(b_0);  panel3.add(b_sign);panel3.add(b_dian);panel3.add(b_add);  panel3.add(b_deng);                                }                                panel.setLayout(flow);                panel4 = new JPanel();                                if (style==2)		{				panel4.setLayout(new GridLayout(5,4,3,2));                		b_xy = new JButton("x^y");                b_xy.setText("<html><font color=purple>x^y</font></html>");		b_ln = new JButton("ln");                b_ln.setText("<html><font color=purple>ln</font></html>");		b_log = new JButton("log");                b_log.setText("<html><font color=purple>log</font></html>");		b_pi = new JButton("pi");                b_pi.setText("<html><font color=blue>pi</font></html>");		b_x2 = new JButton("x^2");                b_x2.setText("<html><font color=purple>x^2</font></html>");		b_x3 = new JButton("x^3");                b_x3.setText("<html><font color=purple>x^3</font></html>");		b_k1 = new JButton("(");                b_k1.setText("<html><font color=purple>(</font></html>");		b_k2 = new JButton(")");                b_k2.setText("<html><font color=purple>)</font></html>");		b_sin = new JButton("sin");                b_sin.setText("<html><font color=purple>sin</font></html>");		b_cos = new JButton("cos");                b_cos.setText("<html><font color=purple>cos</font></html>");		b_tan = new JButton("tan");                b_tan.setText("<html><font color=purple>tan</font></html>");		b_n = new JButton("n!");                b_n.setText("<html><font color=purple>n!</font></html>");                b_FE = new JButton("F-E");                b_FE.setText("<html><font color=purple>F-E</font></html>");		b_dms = new JButton("dms");                b_dms.setText("<html><font color=purple>dms</font></html>");		b_Exp = new JButton("Exp");                b_Exp.setText("<html><font color=purple>Exp</font></html>");                b_dao.setText("<html><font color=purple>1/x</font></html>");                b_Sta = new JButton("Sta");                b_Sta.setText("<html><font color=blue>Sta</font></html>");                		panel4.add(b_FE);  panel4.add(b_k1);  panel4.add(b_k2); panel4.add(b_MC);		panel4.add(b_dms);  panel4.add(b_Exp);  panel4.add(b_ln); panel4.add(b_MR);		panel4.add(b_sin);  panel4.add(b_xy);  panel4.add(b_log); panel4.add(b_MS);		panel4.add(b_cos);  panel4.add(b_x3);  panel4.add(b_n);   panel4.add(b_Madd);                panel4.add(b_tan);  panel4.add(b_x2);  panel4.add(b_dao); panel4.add(b_pi);                                panel52 = new JPanel();                panel52.setLayout(new GridLayout(5,1,3,2));                panel52.add(b_Sta);                panel52.add(b_Ave);                panel52.add(b_Sum);                panel52.add(b_s);                panel52.add(b_Dat);

⌨️ 快捷键说明

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