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

📄 calculator.java

📁 本人做的JAVA课程设计.为一个计算器.界面和各方面都比较漂亮.
💻 JAVA
字号:

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

public class Calculator extends JFrame implements ActionListener
{
	//菜单----开始
	JMenuBar mb=new JMenuBar();
		JMenu m1=new JMenu("编辑(E)");
	JMenu m2=new JMenu("查看(V)");
	JMenu m3=new JMenu("帮助(H)");			
					
		
		JMenuItem m1_1=new JMenuItem("复制(C) Ctrl+C");
		JMenuItem m1_2=new JMenuItem("粘贴(P) Ctrl+V");
		
		JMenuItem m2_1=new JMenuItem("标准型(T)");
		JMenuItem m2_2=new JMenuItem("科学型(S)");
		JMenuItem m2_3=new JMenuItem("数字分组(I)");
		
		JMenuItem m3_1=new JMenuItem("帮助主题(H)");
		JMenuItem m3_2=new JMenuItem("关于计算器(A)");
	
	JMenu m4=new JMenu("文件");
		


		JMenuItem m4_1=new JMenuItem("退出");
	
		
	//菜单-----结束
	
	
	//布局
	//JPanel p=new JPanel(new BorderLayout());
	
	JPanel p1=new JPanel();
		JTextField tf=new JTextField(30);
	JPanel p2=new JPanel(new BorderLayout(3,10));
		JPanel p2_1=new JPanel(new GridLayout(5,1,5,8));			
				JButton b1=new JButton();			
				JButton b2=new JButton("MC");
				JButton b3=new JButton("MR");
				JButton b4=new JButton("MS");
				JButton b5=new JButton("M+");
				
		JPanel p2_2=new JPanel(new BorderLayout(5,10));
			JPanel p2_2_1=new JPanel(new GridLayout(1,3,3,5));
				JButton b6=new JButton("Backspace");
				JButton b7=new JButton("CE");
				JButton b8=new JButton("C");										
			JPanel p2_2_2=new JPanel(new GridLayout(4,5,3,3));
				String a[]={"7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x","0","+/-",".","+","="};
				JButton b[]=new JButton[20];
			
	///布局--------结束
		
			
	///-----------------------------------------方法	
	public Calculator()
	{
		super("软件工程2班  叶炳良  3104007022" );
		this.setResizable(false);
		this.setSize(350,250);
		//菜单--------开始//
		m1.add(m1_1);	m1.add(m1_2);	
		
		m2.add(m2_1);	m2.add(m2_2);	m2.addSeparator();	m2.add(m2_3);
		
		m3.add(m3_1);	m3.addSeparator();	m3.add(m3_2);	
	
			//----------------------------给"退出"菜单加监听器
			m4_1.addActionListener(this);
				
		m4.add(m4_1);
						
		mb.add(m1);	mb.add(m2);	mb.add(m3);	mb.add(m4);
							
		
		setJMenuBar(mb);
		///菜单--------结束//
				
		
		//p1
			//文本域
			//---------------------------文本域设置右对齐
			tf.setHorizontalAlignment(JTextField.RIGHT);
			//--------------------------给文本域加监听器
			tf.addActionListener(this);
			
				p1.add(tf);
					
		//p2
		
			//p2_1
					//-------------------------背景颜色
					b2.setForeground(Color.red);
					b3.setForeground(Color.red);
					b4.setForeground(Color.red);
					b5.setForeground(Color.red);
					//---------------------------------------字体
					b2.setFont(new Font("Arial",Font.PLAIN,12));
					b3.setFont(new Font("Arial",Font.PLAIN,12));
					b4.setFont(new Font("Arial",Font.PLAIN,12));
					b5.setFont(new Font("Arial",Font.PLAIN,12));
								
					//--------------------------------------------------设置按钮凹下
					b1.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
					//--------------------------------------------------设置按钮凸起
					b2.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
					b3.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
					b4.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
					b5.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
				
					p2_1.add(b1);	p2_1.add(b2);	p2_1.add(b3);	p2_1.add(b4);	p2_1.add(b5);
													
			//p2_2
			
				//---------------------------------------------------------p2_2_1
					b6.setForeground(Color.red);
					b7.setForeground(Color.red);
					b8.setForeground(Color.red);
					
					b6.setFont(new Font("Arial",Font.PLAIN,12));
					b7.setFont(new Font("Arial",Font.PLAIN,12));
					b8.setFont(new Font("Arial",Font.PLAIN,12));
					
					
					b6.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
					b7.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
					b8.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
					
					//------------给退格键加监听器
					b6.addActionListener(this);	
					b8.addActionListener(this);		
				
					p2_2_1.add(b6);	p2_2_1.add(b7);	p2_2_1.add(b8);	
				
				//--------------------------------------------------------p2_2_2
					for (int i = 0; i<b.length; i++)
					{
						//初始化
						b[i]=new JButton(a[i]);	
						//-------------------------------按钮凸起
						b[i].setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
						
						
						p2_2_2.add(b[i]);
						
						//-------------------------------加字体颜色
						b[i].setForeground(Color.blue);
												
						//--------------------------------设置字体
						b[i].setFont(new Font("Arial",Font.PLAIN,12));
						//-------------------------------添加监听器
						b[i].addActionListener(this);
					}
				
						//------------------给运算符加字体颜色
						b[3].setForeground(Color.red);
						b[8].setForeground(Color.red);
						b[13].setForeground(Color.red);
						b[18].setForeground(Color.red);
						b[19].setForeground(Color.red);			
						
					//往P2_2添加组件
					p2_2.add(p2_2_1,BorderLayout.NORTH);
					p2_2.add(p2_2_2,BorderLayout.CENTER);
			//
			p2.add(p2_1,BorderLayout.WEST);
			p2.add(p2_2,BorderLayout.CENTER);
			
		
		
		Container c=this.getContentPane();
		c.add(p1,BorderLayout.NORTH);
		c.add(p2,BorderLayout.CENTER);
		
		
		this.show(true);
				
		

	}
	
	///事件处理///
	public void actionPerformed(ActionEvent e)
	{		
		if(e.getActionCommand().equals("sqrt")||e.getActionCommand().equals("1/x")||e.getActionCommand().equals("=")||e.getActionCommand().equals("+/-")||e.getActionCommand().equals("Backspace")||e.getActionCommand().equals("CE")||e.getActionCommand().equals("C")||e.getActionCommand().equals("退出"))
		{
			//------------------------------------------------------退出菜单
			if(e.getActionCommand().equals("退出"))
			{
					
				int a=JOptionPane.showConfirmDialog(null,"确定退出吗?","询问",JOptionPane.YES_NO_OPTION);
				if(a==0)
				{
					JOptionPane.showMessageDialog(null,"谢谢使用","消息",JOptionPane.INFORMATION_MESSAGE);
					System.exit(0);
				}
				else
				if(a==1)
				{	
					int b=JOptionPane.showConfirmDialog(null,"是否继续使用?","询问",JOptionPane.YES_NO_OPTION);							
				}			
			}
			//---------------------------------------------------退格键		
			if(e.getActionCommand().equals("Backspace"))
			{
				tg();		
			}	
			//---------------------------------------------------归零
			if(e.getActionCommand().equals("C"))
			{
				String s=tf.getText();				
				tf.setText("");				
			}

	   		///-数据计算//
	
			//------------------------------转换正负数

		 	if(e.getActionCommand().equals("+/-"))
			{
				String ssss=tf.getText().trim();
				System.out.println(ssss);
				try {
					double ssss1 = -(Double.parseDouble(ssss));
				//System.out.println(ssss1);
				tf.setText(ssss1+"");
			    }
			    catch (Exception ex) {
			    	System.out.println (ex.getMessage());
			    }				
			}
				
			//------------------------------求平方根
	
			 if(e.getActionCommand().equals("sqrt"))
			{
				String s=tf.getText().trim();
				//s+=e.getActionCommand();
				double s1=Double.parseDouble(s);
				double ss=Math.sqrt(s1);
				tf.setText(ss+"");
			}

			//-------------------------------倒数

			 if(e.getActionCommand().equals("1/x"))
			{
				String s=tf.getText().trim();
				//s+=e.getActionCommand();
				double s1=Double.parseDouble(s);
				double ss=1/s1;
				tf.setText(ss+"");
				
			}		
			
			//------------------------------等于

			if(e.getActionCommand().equals("="))
			{
				String s = tf.getText().trim();
				System.out.println (s);
				js(s);
			}

		}		
		else
		{
			String s=tf.getText();
			if(s.length()<18)
			{
				s+=e.getActionCommand();
				tf.setText(s);
			}									
		}										
	}	
		
	
	public void js(String str)
	{
		int a,b,c,d,e;
		a = str.indexOf('+');
		b = str.indexOf('-');
		c = str.indexOf('*');
		d = str.indexOf('/');
		e = str.indexOf("%");
		//-------------------------------------------加法
		if(a!=-1)
		{
			double s1=Double.parseDouble(str.substring(0,a));
			double s2=Double.parseDouble(str.substring(a+1));
			double su=s1+s2;
			tf.setText(su+"");	
		}
		//-------------------------------------------减法
		if(b!=-1)
		{
			double s1=Double.parseDouble(str.substring(0,b));
			double s2=Double.parseDouble(str.substring(b+1));
			double su=s1-s2;
			tf.setText(su+"");	
		}
		//-------------------------------------------乘法
		if(c!=-1)
		{
			double s1=Double.parseDouble(str.substring(0,c));
			double s2=Double.parseDouble(str.substring(c+1));
			double su=s1*s2;
			tf.setText(su+"");	
		}
		//-------------------------------------------除法
		if(d!=-1)
		{
			double s1=Double.parseDouble(str.substring(0,d));
			double s2=Double.parseDouble(str.substring(d+1));
			double su=s1/s2;
			tf.setText(su+"");	
		}
		//-------------------------------------------取余
		if(e!=-1)
		{
			int s1=Integer.parseInt(str.substring(0,e));
			int s2=Integer.parseInt(str.substring(e+1));
			int su=s1%s2;
			tf.setText(su+"");	
		}		
		
	}
	
	public void tg()
	{
		String tg = tf.getText().trim();	//trim,去除字符串两端空格		
		if(tg.length()>0)
		{
			String tg1 = tg.substring(0,tg.length()-1);
			tf.setText(tg1);
		}		
	}
	
	
	///主方法//
	public static void main(String[]args)	
	{
		new Calculator();
	}			
}

⌨️ 快捷键说明

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