zoukankan      html  css  js  c++  java
  • java 学习 ——计算器小程序

    简易计算器小程序代码:

    package jisuanqi;
    
    //声明须要插入的包
    import java.awt.*;
    import java.lang.Object;
    import java.lang.String;
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.TextComponent;
    //声明一个主类jisuanqi。继续窗体类Frame
    public class jisuanqi extends Frame{
    	
    	//声明16个Button
    	Button anjian1, anjian2, anjian3, anjian4, anjian5, anjian6, anjian7, anjian8, anjian9, anjian10, anjian11, anjian12, anjian13, anjian14,anjian15,anjian16;
    	//声明文本框。用于接收数字和计算
    	TextField numText;
    	//声明面板容器,用于存放各种button
    	Panel anjianPanel;
    	//构造方法初始化button
    	jisuanqi(String title){
    		
    		super(title);
    		anjian1=new Button("0");
    		anjian2=new Button("1");
    		anjian3=new Button("2");
    		anjian4=new Button("3");
    		anjian5=new Button("4");
    		anjian6=new Button("5");
    		anjian7=new Button("6");
    		anjian8=new Button("7");
    		anjian9=new Button("8");
    		anjian10=new Button("9");
    		anjian11=new Button("+");
    		anjian12=new Button("-");
    		anjian13=new Button("*");
    		anjian14=new Button("/");
    		anjian15=new Button("=");
    		anjian16=new Button("清空");
    		//初始化文本框。将文本的值设置为“0”
    		numText=new TextField("0");
    		//实例化面板;
    		anjianPanel=new Panel();
    		//设置button
    		anjianPanel.setLayout(new FlowLayout());
    		//实例化button
    		anjian1.addActionListener(new anjianAction());
    		anjian2.addActionListener(new anjianAction());
    		anjian3.addActionListener(new anjianAction());
    		anjian4.addActionListener(new anjianAction());
    		anjian5.addActionListener(new anjianAction());
    		anjian6.addActionListener(new anjianAction());
    		anjian7.addActionListener(new anjianAction());
    		anjian8.addActionListener(new anjianAction());
    		anjian9.addActionListener(new anjianAction());
    		anjian10.addActionListener(new anjianAction());
    		anjian11.addActionListener(new anjianAction());
    		anjian12.addActionListener(new anjianAction());
    		anjian13.addActionListener(new anjianAction());
    		anjian14.addActionListener(new anjianAction());
    		anjian15.addActionListener(new anjianAction());
    		anjian16.addActionListener(new anjianAction());
    		//将各个button加入到面板容器中
    		anjianPanel.add(anjian1);
    		anjianPanel.add(anjian2);
    		anjianPanel.add(anjian3);
    		anjianPanel.add(anjian4);
    		anjianPanel.add(anjian5);
    		anjianPanel.add(anjian6);
    		anjianPanel.add(anjian7);
    		anjianPanel.add(anjian8);
    		anjianPanel.add(anjian9);
    		anjianPanel.add(anjian10);
    		anjianPanel.add(anjian11);
    		anjianPanel.add(anjian12);
    		anjianPanel.add(anjian13);
    		anjianPanel.add(anjian14);
    		anjianPanel.add(anjian15);
    		anjianPanel.add(anjian16);
    		//为文本框加入事件
    		numText.addTextListener(new TextListener() {
    			
    			public void textValueChanged(TextEvent e) {
    				
    				if(numText.getText().indexOf("0",0)!=-1){
    					
    					numText.getText().replace("0","");
    				}
    			}
    		});
    		
    		addWindowListener(new WindowAdapter() {
    			
    			public void windowClosing(WindowEvent e) {
    				
    				System.exit(0);
    			}
    		});
    		//将文本框放置在顶部
    		add(numText,BorderLayout.NORTH);
    		//加入button
    		add(anjianPanel,BorderLayout.CENTER);
    		//设置文本框属性
    		numText.setEditable(false);
    	}
    	//没有不论什么操作的值
    	int num=0;
    	//numStr是文本框的值
    	String numStr=null;
    	Boolean chinage=false;
    	//设置button
    	public int check(){
    	numStr = numText.getText();
    	if (numStr.indexOf("+") == 0) {
    		
    		numStr = numStr.replace('+', '0');
    		num = num + Integer.parseInt(numStr);
    		return num;
    	}
    	else if (numStr.indexOf("-") != -1) {
    		
    		numStr = numStr.replace("-", "0");
    		num = num - Integer.parseInt(numStr);
    		return num;
    	}
    	else if(numStr.indexOf("*")!=-1){
    		
    		numStr=numStr.replace('*','0');
    		num = num * Integer.parseInt(numStr);
    		return num;
    	}
    	else if(numStr.indexOf("/")!=-1){
    		
    		numStr=numStr.replace('/','0');
    		try{
    			
    			num = num / Integer.parseInt(numStr);
    			return num;
    		}
    		catch(ArithmeticException e){
    			
    			JOptionPane.showMessageDialog(null,"除数不能为空!","消息!",1);
    			return num;
    		}
    	}
    	else return num=Integer.parseInt(numStr);
    	}
    	//创建事件
    	private class anjianAction implements ActionListener{
    		
    		public void actionPerformed(ActionEvent event){
    		
    			if(event.getActionCommand()=="0"){
    		
    				if(!numText.getText().equals("0"))
    					numText.setText(numText.getText()+0);
    			}
    	
    			if(event.getActionCommand()=="1")
    				numText.setText(numText.getText()+1);
    			if(event.getActionCommand()=="2")
    				numText.setText(numText.getText()+2);
    			if(event.getActionCommand()=="3")
    				numText.setText(numText.getText()+3);
    			if(event.getActionCommand()=="4")
    				numText.setText(numText.getText()+4);
    			if(event.getActionCommand()=="5")
    				numText.setText(numText.getText()+5);
    			if(event.getActionCommand()=="6")
    				numText.setText(numText.getText()+6);
    			if(event.getActionCommand()=="7")
    				numText.setText(numText.getText()+7);
    			if(event.getActionCommand()=="8")
    				numText.setText(numText.getText()+8);
    			if(event.getActionCommand()=="9")
    				numText.setText(numText.getText()+9);
    	
    			if(event.getActionCommand()=="清空"){
    		
    				numText.setText("0");
    				num=0;
    			}
    			if(event.getActionCommand()=="+"){
    		
    				//调用check();方法
    				check();
    				numText.setText("+");
    			}
    			if(event.getActionCommand()=="-"){
    				
    				check();
    				numText.setText("-");
    			}
    			if(event.getActionCommand()=="*"){
    		
    				check();
    				numText.setText("*");
    			}
    			if(event.getActionCommand()=="/"){
    				
    				if(numStr=="/0"){
    		
    					JOptionPane.showMessageDialog(null,"除数不能为空!","消息!",1);
    				}
    				check();
    				numText.setText("/");
    			}
    			if(event.getActionCommand()=="="){
    		
    				check();
    				numText.setText(""+num);
    			}
    		}
    	}
    	public static void main(String[] args){
    		
    		jisuanqi jisuanqi=new jisuanqi("计算器");
    		jisuanqi.setBackground(Color.CYAN);
    		jisuanqi.setSize(300,280);
    		//设置窗体大小
    		jisuanqi.setLocation(550,350);
    		//设置界面属性
    		jisuanqi.setVisible(true);
    	}
    }


  • 相关阅读:
    python+opencv实现图像缩放
    vim 常用指令-持续更新
    python实现简单的SVM
    linux查看当前目录下,各文件夹大小
    python解析json文件信息到csv中
    根据小图文件名在原图画框
    BZOJ1079: [SCOI2008]着色方案 (记忆化搜索)
    BZOJ1044: [HAOI2008]木棍分割 (二分 + DP)
    gym100825G. Tray Bien(轮廓线DP)
    BZOJ1237: [SCOI2008]配对
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5197377.html
Copyright © 2011-2022 走看看