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

📄 testcalculator.java

📁 用Java做的小型计算器
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
//package Calculatorpackage;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;
import java.lang.*;
import java.lang.String;
import java.lang.Integer;
import java.lang.Math;
class Calculator extends JFrame
{	
	public Calculator()
	{	
		this.setTitle(" 计算器 - [Java]");
		this.setSize(560,360);
		this.setLocation(250,150);
		initjTextFiled();
		initjLabel(); 
      	initMenu();
		initpanel();
		initpanel1();
		initpanel2();
		initpanel3();
		initpanel4();
		initpanel5();
		initframe();
		display=new String("");
		operand=0.0;
		result=0.0;
		operator =0;
		equa=equa1=sign0=sign=sign2=sign8=sign16=signAngle=-1;	
		paste=pul=sub=mul=div=false;
		pul1=sub1=mul1=div1=false;
		jLabel1.setHorizontalAlignment(JLabel.CENTER);
		//创建一个事件监听器	
		ActionListener action=new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				Check_actionPerformed(e);
			}	
		};
		//创建一个专门监听进制和角度按钮的事件监听器
		ActionListener action_angle=new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				Check_action_angle_Performed(e);
			}	
		};
		//为按钮添加事件监听器
		num1.addActionListener(action);
    	num2.addActionListener(action);
   		num3.addActionListener(action);
   		num4.addActionListener(action);
   		num5.addActionListener(action);
   		num6.addActionListener(action);
   		num7.addActionListener(action);
   		num8.addActionListener(action);
   		num9.addActionListener(action);
   		num0.addActionListener(action);
   		point.addActionListener(action);
   		minus.addActionListener(action);
   		plus.addActionListener(action);
   		subtract.addActionListener(action);
   		multiply.addActionListener(action);
   		divild.addActionListener(action);
   		equal.addActionListener(action);
   		back.addActionListener(action);
   		ce.addActionListener(action);
   		cc.addActionListener(action); 		
   		a.addActionListener(action);
   		b.addActionListener(action);
   		c.addActionListener(action);
   		d.addActionListener(action);
   		ee.addActionListener(action);
   		f.addActionListener(action);
   		sqrt.addActionListener(action); 		
   		ms.addActionListener(action);
   		mc.addActionListener(action); 		
   		mr.addActionListener(action);
   		mpuls.addActionListener(action);
   		x1.addActionListener(action);
   		x2.addActionListener(action);
   		x3.addActionListener(action);
   		xy.addActionListener(action);
   		tan.addActionListener(action);
   		sin.addActionListener(action);
   		cos.addActionListener(action);
   		log.addActionListener(action);
   		ln.addActionListener(action);
   		copyItem.addActionListener(action);
   		pasteItem.addActionListener(action);
   		item_win.addActionListener(action);
   		item_java.addActionListener(action);
   		item_ced.addActionListener(action);   		
   		helpItem.addActionListener(action);
   		aboutItem.addActionListener(action); 
   		
   		garrison16.addActionListener(action_angle);
    	garrison10.addActionListener(action_angle);
   		garrison8.addActionListener(action_angle);
   		garrison2.addActionListener(action_angle);
   		angle.addActionListener(action_angle);
   		radian.addActionListener(action_angle);   		
	}
	
	private void initjTextFiled()
	{//设置输入框
		jTextFiled.setHorizontalAlignment(JTextField.RIGHT);
		jTextFiled.setCaretColor(Color.white);
		jTextFiled.setEditable(false);			
	}
	private void initjLabel()
	{//设置内存标签
		jLabel=new JLabel();	
		jLabel1=new JLabel();
		jLabel.setBorder(BorderFactory.createLoweredBevelBorder());	
		jLabel1.setBorder(BorderFactory.createLoweredBevelBorder());	
	}
		
	private void initpanel()
	{//设置主面板
		panel.setLayout(new BorderLayout());		
		panel.add(panel1,BorderLayout.CENTER);
		panel.add(panel3,BorderLayout.SOUTH);	
	}
		
	private void initpanel1()
	{//设置面板1放在主面板中心地面板
		panel1.setLayout(new GridLayout(2,1,0,3));
		panel1.add(jTextFiled);
	    panel1.add(panel2);	//添加放有进制转换按钮面板
	}
					
	private void initpanel2()
	{//设置面板2放置进制转换按钮
    	panel2.setLayout(new GridLayout(1,6,5,5));
    	//把进制按钮归为一组
    	ButtonGroup garrGroup=new ButtonGroup();
    	garrison16=new JRadioButton("十六进制");
    	panel2.add(garrison16);
    	garrGroup.add(garrison16);
    	
    	garrison10=new JRadioButton("十进制");
    	garrison10.setSelected(true);
		panel2.add(garrison10);
		garrGroup.add(garrison10);
		
		garrison8=new JRadioButton("八进制");
		panel2.add(garrison8);
		garrGroup.add(garrison8);
		
		garrison2=new JRadioButton("二进制");
		panel2.add(garrison2);
		garrGroup.add(garrison2);
		//把角度与弧度按钮归为一组
		ButtonGroup angleGroup=new ButtonGroup();
		angle=new JRadioButton("角度");
		panel2.add(angle);
		angleGroup.add(angle);
		
		radian=new JRadioButton("弧度");
		radian.setSelected(true);
		panel2.add(radian);
		angleGroup.add(radian);
		sign10=1;
		signAngle=1;
	}
		
	private void initpanel3()
	{//设置面板3放置面板4和面板5
		panel3.setLayout(new GridLayout(1,2,30,0));
		panel3.add(panel4);
		panel3.add(panel5);
	}	
			
	private void initpanel4()
	{//设置面板4放置各种函数按钮
		panel4.setLayout(new GridLayout(6,3,10,10));
		mc=new JButton("MC");
		mr=new JButton("MR");
		ms=new JButton("MS");
		mpuls=new JButton("M+");
		ln=new JButton("ln");
		x1=new JButton("1/x");
		x2=new JButton("x^2");
		x3=new JButton("x^3");
		xy=new JButton("x^y");
		tan=new JButton("tan");
		cos=new JButton("cos");
		sin=new JButton("sin");
		log=new JButton("log");
		a=new JButton("A");
		b=new JButton("B");
		c=new JButton("C");
		
		a.setEnabled(false);
		b.setEnabled(false);
		c.setEnabled(false);
		//设置按钮上字体地颜色
		mc.setForeground(Color.RED);
		mr.setForeground(Color.RED);
		ms.setForeground(Color.RED);
		mpuls.setForeground(Color.RED);
		x1.setForeground(Color.MAGENTA);
		x2.setForeground(Color.MAGENTA);
		x3.setForeground(Color.MAGENTA);
		xy.setForeground(Color.MAGENTA);
		tan.setForeground(Color.MAGENTA);
		cos.setForeground(Color.MAGENTA);
		sin.setForeground(Color.MAGENTA);
		log.setForeground(Color.MAGENTA);
		ln.setForeground(Color.MAGENTA);
		a.setForeground(Color.BLUE);
		b.setForeground(Color.BLUE);
		c.setForeground(Color.BLUE);
		panel4.add(sin);
		panel4.add(jLabel);
		panel4.add(jLabel1);
			
		panel4.add(cos);
		panel4.add(log);
		panel4.add(mc);
		
		panel4.add(tan);
		panel4.add(ln);
		panel4.add(mr);
			
		panel4.add(xy);
		panel4.add(x1);
		panel4.add(ms);
		
		panel4.add(x3);
		panel4.add(x2);
		panel4.add(mpuls);
		
		panel4.add(a);
		panel4.add(b);
		panel4.add(c);
	}	
		
	private void initpanel5()
	{//设置面板5放置数字按钮
		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");
		num0=new JButton("0");
		point=new JButton(".");
		minus=new JButton("+/-");
		plus=new JButton("+");
		subtract=new JButton("-");
		multiply=new JButton("*");
		divild=new JButton("/");
		equal=new JButton("=");
		back=new JButton("BSP");
		ce=new JButton("CE");
		cc=new JButton("C");
		d=new JButton("D");
		ee=new JButton("E");
		f=new JButton("F");
		sqrt=new JButton("Sqrt");
		
		d.setEnabled(false);
		ee.setEnabled(false);
		f.setEnabled(false);
		//设置按钮字体颜色
		num0.setForeground(Color.BLUE);
		num1.setForeground(Color.BLUE);
		num2.setForeground(Color.BLUE);
		num3.setForeground(Color.BLUE);
		num4.setForeground(Color.BLUE);
		num5.setForeground(Color.BLUE);
		num6.setForeground(Color.BLUE);
		num7.setForeground(Color.BLUE);
		num8.setForeground(Color.BLUE);
		num9.setForeground(Color.BLUE);
		point.setForeground(Color.BLUE);
		minus.setForeground(Color.BLUE);
		d.setForeground(Color.BLUE);
		ee.setForeground(Color.BLUE);
		f.setForeground(Color.BLUE);
		plus.setForeground(Color.RED);
		subtract.setForeground(Color.RED);
		multiply.setForeground(Color.RED);
		divild.setForeground(Color.RED);
		equal.setForeground(Color.RED);
		back.setForeground(Color.RED);
		ce.setForeground(Color.RED);
		cc.setForeground(Color.RED);
		sqrt.setForeground(Color.RED);
		
		multiply.setFont(new Font("*",0,16));
		subtract.setFont(new Font("-",0,16));
		
		panel5.setLayout(new GridLayout(6,4,10,10));
		
		panel5.add(back);
		panel5.add(ce);
		panel5.add(cc);
		panel5.add(sqrt);
		
		panel5.add(num7);
		panel5.add(num8);
		panel5.add(num9);
		panel5.add(divild);
		
		panel5.add(num4);
		panel5.add(num5);
		panel5.add(num6);
		panel5.add(multiply);
		
		panel5.add(num1);
		panel5.add(num2);
		panel5.add(num3);
		panel5.add(subtract);
		
		panel5.add(num0);
		panel5.add(minus);
		panel5.add(point);
		panel5.add(plus);
		
		panel5.add(d);
		panel5.add(ee);
		panel5.add(f);
		panel5.add(equal);
	}	
	private void initMenu()
	{//设置菜单条	
		this.setJMenuBar(menuBar);
		EditMenu = new JMenu( "编辑(E)" );
      	SeeMenu = new JMenu( "风格(P)" );
      	HelpMenu = new JMenu( "帮助(H)" );	
      	copyItem=new JMenuItem(EditNames[0]);	
      	pasteItem=new JMenuItem(EditNames[1]);	 	
      	helpItem=new JMenuItem(HelpNames[0]);
      	aboutItem=new JMenuItem(HelpNames[1]);
      	//添加编辑菜单的元素
      	EditMenu.add(copyItem);
      	EditMenu.addSeparator();
      	EditMenu.add(pasteItem);
      	pasteItem.setEnabled(false); 
      	//添加帮助菜单的元素
      	HelpMenu.add(helpItem);
      	HelpMenu.addSeparator();
      	HelpMenu.add(aboutItem);
      	//添加风格菜单的元素
      	ButtonGroup btngroup=new ButtonGroup();   	
    	item_win = new JRadioButtonMenuItem( SeeNames[0] );
    	SeeMenu.add( item_win );
    	SeeMenu.addSeparator();
    	btngroup.add(item_win);    	
    	item_java = new JRadioButtonMenuItem( SeeNames[1] );
    	SeeMenu.add( item_java );
    	SeeMenu.addSeparator();
    	item_java.setSelected(true);
    	btngroup.add(item_java);  	
    	item_ced = new JRadioButtonMenuItem( SeeNames[2] );
    	SeeMenu.add( item_ced );
    	btngroup.add(item_ced);	  
      	menuBar.add( EditMenu );
      	menuBar.add( SeeMenu );
      	menuBar.add( HelpMenu );
      	//设置菜单的快捷方式
      	EditMenu.setMnemonic(KeyEvent.VK_E);
      	SeeMenu.setMnemonic(KeyEvent.VK_P);
      	HelpMenu.setMnemonic(KeyEvent.VK_H);
      	copyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.ALT_MASK));
      	pasteItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.ALT_MASK));
      	item_win.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_W,InputEvent.ALT_MASK));
      	item_java.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_J,InputEvent.ALT_MASK));
      	item_ced.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.ALT_MASK));
      	helpItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H,InputEvent.ALT_MASK));
      	aboutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.ALT_MASK));
    }
   	private void initframe()
    {//设置框架	
    	this.getContentPane().add(panel);
		this.addWindowListener(new WindowCloser()); // 注册监听器对象
		this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
		this.setResizable(false);
		//this.pack();
		this.setVisible(true);	
    }
    private void Check_action_angle_Performed(ActionEvent e)
    {//条件检测
    	if(e.getSource()==garrison16)

⌨️ 快捷键说明

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