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

📄 calculator.java

📁 通过JAVA设计 GUI 界面的计算器程序
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
  	buttonmod.setEnabled(true);
  	ba.setVisible(false);
    bb.setVisible(false);
    bc.setVisible(false);
    bd.setVisible(false);
    be.setVisible(false);
    bf.setVisible(false);
    bx3.setVisible(false);
    bln.setVisible(false);
    bsin.setVisible(false);
    bcos.setVisible(false);
    bxy.setVisible(false);
    bx2.setVisible(false);
    bn.setVisible(false);
    btan.setVisible(false);
    bpi.setVisible(false);
    bmod.setVisible(false);
    p4.setVisible(false);
  }
  public void view()//显示科学计算器的功能键,变成科学计算器
  {buttonsqrt.setEnabled(false);
  	buttonmod.setEnabled(false);
  	ba.setVisible(true);
    bb.setVisible(true);
    bc.setVisible(true);
    bd.setVisible(true);
    be.setVisible(true);
    bf.setVisible(true);
    bx3.setVisible(true);
    bln.setVisible(true);
    bsin.setVisible(true);
    bcos.setVisible(true);
    bxy.setVisible(true);
    bx2.setVisible(true);
    bn.setVisible(true);
    btan.setVisible(true);
    bpi.setVisible(true);
    bmod.setVisible(true);
    p4.setVisible(true);
  }
  public void fsix()//十六进制按键不可以用
  {ba.setEnabled(false);
  	bb.setEnabled(false);
  	bc.setEnabled(false);
  	bd.setEnabled(false);
  	be.setEnabled(false);
  	bf.setEnabled(false);
  	
  }
  public void tsix()//十六进制按键可以用
  {  	ba.setEnabled(true);
  	bb.setEnabled(true);
  	bc.setEnabled(true);
  	bd.setEnabled(true);
  	be.setEnabled(true);
  	bf.setEnabled(true);
  	
  }
  public void fbutton()//函数不可用
  {
  	bsin.setEnabled(false);
  	bcos.setEnabled(false);
  	btan.setEnabled(false);
  	bpi.setEnabled(false);  
  	buttonDao.setEnabled(false);
  	buttonDot.setEnabled(false);	
  }
   public void tbutton()//函数可用
   {
  	bsin.setEnabled(true);
  	bcos.setEnabled(true);
  	btan.setEnabled(true);
  	bpi.setEnabled(true);
  	buttonDao.setEnabled(true);  
  	buttonDot.setEnabled(true);	
  }
  public void fnumb2()//二进制按键,保有01,其它2-9不可用
  {for (int i = 2; i <= 9; i++)
        button[i].setEnabled(false);
  	
  }
  public void tnumball()//所有键可用
  {
  	 for (int i = 0; i <= 9; i++)
        button[i].setEnabled(true);
  	
  }
  public void fnumb8()//八进制按键,可用1-8
  { for (int i = 0; i <= 7; i++)
  	     button[i].setEnabled(true);
  	     button[9].setEnabled(false);
        button[8].setEnabled(false);
  	
  }
   public void tempmid()//判断上一次是什么进制
   {
  	if (mid==1)
  	{
  	int decimal = Integer.parseInt(textAnswer.getText(),16); 
       textAnswer.setText(String.valueOf(decimal));
  }
  else if(mid==2){
  	int decimal = Integer.parseInt(textAnswer.getText(),10); 
       textAnswer.setText(String.valueOf(decimal));
  }
  else if(mid==3){
  	int decimal = Integer.parseInt(textAnswer.getText(),2); 
       textAnswer.setText(String.valueOf(decimal));
  }
 else if(mid==4){
  	int decimal = Integer.parseInt(textAnswer.getText(),8); 
       textAnswer.setText(String.valueOf(decimal));
  }
  
  }
   public void fristchange()//other->10进制
   { 	if (fchange==1)
  	{// textAnswer.setText("ddd");
  	int decimal = Integer.parseInt(textAnswer.getText(),16); 
       textAnswer.setText(String.valueOf(decimal));
  }
  else if(fchange==2){
  	long jj=Math.round((Double.parseDouble(textAnswer.getText()))); 
  	       textAnswer.setText(String.valueOf(jj));
  	//int decimal = Integer.parseInt(textAnswer.getText(),10); 
     //  textAnswer.setText(String.valueOf(decimal));
  }
  else if(fchange==3){
  	long jj=Math.round((Double.parseDouble(textAnswer.getText()))); 
  	       textAnswer.setText(String.valueOf(jj));
  	int decimal = Integer.parseInt(textAnswer.getText(),2); 
       textAnswer.setText(String.valueOf(decimal));
  }
 else if(fchange==4){
 	long jj=Math.round((Double.parseDouble(textAnswer.getText()))); 
  	       textAnswer.setText(String.valueOf(jj));
  	int decimal = Integer.parseInt(textAnswer.getText(),8); 
       textAnswer.setText(String.valueOf(decimal));
  }
  
  }
   public void lastchange()//10->other进制
   {  	if (fchange==1)
  	{//textAnswer.setText(textAnswer.getText()+"fff");
  	textAnswer.setText( Integer.toHexString(Integer
      	.parseInt(textAnswer.getText())));
  }
  else if(fchange==2){
  	long jj=Math.round((Double.parseDouble(textAnswer.getText()))); 
  	       textAnswer.setText(String.valueOf(jj));
  	
  }
  else if(fchange==3){
  	long jj=Math.round((Double.parseDouble(textAnswer.getText()))); 
  	       textAnswer.setText(String.valueOf(jj));
  	textAnswer.setText(Integer.toBinaryString(Integer
      	.parseInt(textAnswer.getText())));
  }
 else if(fchange==4){
 	long jj=Math.round((Double.parseDouble(textAnswer.getText()))); 
  	       textAnswer.setText(String.valueOf(jj));
  	textAnswer.setText(Integer.toOctalString(Integer
      	.parseInt(textAnswer.getText())));
  }
   }
   public void operater2()//标准计算器运算
   {  	frist=false;
          switch (prekey) {
            case 0:
              ianswer += Integer.parseInt(textAnswer.getText());
              break;
            case 1:
              ianswer -= Integer.parseInt(textAnswer.getText());
              break;
            case 2:
              ianswer *=Integer.parseInt(textAnswer.getText());
              break;
            case 3:
              if (Integer.parseInt(textAnswer.getText()) == 0) {
                textAnswer.setText("除数不能为零");
                clickable = false;
              }
              else
              ianswer /= Integer.parseInt(textAnswer.getText());
              break;
            default:
            //JOptionPane.showMessageDialog(null,""+ianswer)  ;
              ianswer = Integer.parseInt(textAnswer.getText());
          }
       textAnswer.setText(String.valueOf(ianswer));
   	}
    public void operater1()//十六进制,八进制,二进制,运算
    {	frist=false;
          switch (prekey) {
            case 0:
              answerd += Double.parseDouble(textAnswer.getText());
              break;
            case 1:
              answerd -= Double.parseDouble(textAnswer.getText());
              break;
            case 2:
              answerd *= Double.parseDouble(textAnswer.getText());
              break;
            case 3:
              if (Double.parseDouble(textAnswer.getText()) == 0) {
                textAnswer.setText("除数不能为零");
                clickable = false;
              }
              else
                answerd /= Double.parseDouble(textAnswer.getText());
              break;
            default:
              answerd = Double.parseDouble(textAnswer.getText());
          }
       textAnswer.setText(String.valueOf(answerd));
   	}	
   public void equal()//浮点等于号得结果
   {if (prekey == 5) {
          if (key == 0) {
            answerd += vard;
            textAnswer.setText(df.format(answerd));
          }
          if (key == 1) {
            answerd -= vard;
            textAnswer.setText(df.format(answerd));
          }
          if (key == 2) {
            answerd *= vard;
            textAnswer.setText(df.format(answerd));
          }
          if (key == 3) {
            if (Double.parseDouble(textAnswer.getText()) == 0) {
              textAnswer.setText("除数不能为零");
              clickable = false;
            }
            else {
              answerd /= vard;
              textAnswer.setText(df.format(answerd));
            }
          }
          if(key==4){
          	 if (Double.parseDouble(textAnswer.getText()) == 0) {
              textAnswer.setText("除数不能为零");
              clickable = false;
            }
            else {
              answerd %= vard;
              textAnswer.setText(df.format(answerd));
            }
          }
           if(key==6){
          	int i;double x; 
          	x=answerd;
          	int y=Integer.parseInt(textAnswer.getText());
            for(i=1;i<y;i++)
            {answerd*=x;
            }
             textAnswer.setText(String.valueOf(answerd));
            }         
        }
        else {
          vard = Double.parseDouble(textAnswer.getText());
          if (key == 0) {
            prekey = -1;
            answerd += Double.parseDouble(textAnswer.getText());
            textAnswer.setText(df.format(answerd));
          }
          if (key == 1) {
            prekey = -1;
            answerd -= Double.parseDouble(textAnswer.getText());
            textAnswer.setText(df.format(answerd));
          }
          if (key == 2) {
            prekey = -1;
            answerd *= Double.parseDouble(textAnswer.getText());
            textAnswer.setText(df.format(answerd));
          }
          if (key == 3) {
            prekey = -1;
            if (Double.parseDouble(textAnswer.getText()) == 0) {
              textAnswer.setText("除数不能为零");
              clickable = false;
            }
            else {
              answerd /= Double.parseDouble(textAnswer.getText());
              textAnswer.setText(df.format(answerd));
            }
          }
            if(key==4){
              
          	 if (Double.parseDouble(textAnswer.getText()) == 0) {
              textAnswer.setText("除数不能为零");
              clickable = false;
            }
            else {
              answerd %= vard;
              textAnswer.setText(df.format(answerd));
            }
          }
          if(key==6){
          	int i;double x; 
          	x=answerd;
          	int y=Integer.parseInt(textAnswer.getText());
            for(i=1;i<y;i++)
            {answerd*=x;
            }
            textAnswer.setText(String.valueOf(answerd));
            }      
        }
        prekey = 5;
        	frist=false;
   }
   public void equal1()//除十进制,求其它运算结果
   {
   	if (prekey == 5) {
          if (key == 0) {
            ianswer += ivard;
          }
          if (key == 1) {
            ianswer -= ivard;
          }
          if (key == 2) {
            ianswer *= ivard;
          }
          if (key == 3) {
            if (Integer.parseInt(textAnswer.getText()) == 0) {
              textAnswer.setText("除数不能为零");
              clickable = false;
            }
            else {
              ianswer /= ivard;
            }
          }
          if(key==4){
          	 if (Integer.parseInt(textAnswer.getText()) == 0) {
              textAnswer.setText("除数不能为零");
              clickable = false;
            }
            else {
              ianswer %= ivard;
            }
          }
           if(key==6){
          	int i;double x; 
          	x=ianswer;
          	int y=Integer.parseInt(textAnswer.getText());
            for(i=1;i<y;i++)
            {ianswer*=x;
            }
             textAnswer.setText(String.valueOf(ianswer));
            }         
        }
        else {
          ivard = Integer.parseInt(textAnswer.getText());
          if (key == 0) {
            prekey = -1;
            ianswer += Integer.parseInt(textAnswer.getText());
                  }
          if (key == 1) {
            prekey = -1;
            ianswer -= Integer.parseInt(textAnswer.getText());
                      }
          if (key == 2) {
            prekey = -1;
            ianswer *= Integer.parseInt(textAnswer.getText());
                   }
          if (key == 3) {
            prekey = -1;
            if (Integer.parseInt(textAnswer.getText()) == 0) {
              textAnswer.setText("除数不能为零");
              clickable = false;
            }
            else {
              ianswer /= Integer.parseInt(textAnswer.getText());
                      }
          }
            if(key==4){
             if (Integer.parseInt(textAnswer.getText()) == 0) {
              textAnswer.setText("除数不能为零");
              clickable = false;
            }
            else {
              ianswer %= ivard;
                 }
          }
          if(key==6){
          	int i;double x; 
          	x=ianswer;
          	int y=Integer.parseInt(textAnswer.getText());
            for(i=1;i<y;i++)
            {ianswer*=x;
            }
            
            }textAnswer.setText(String.valueOf(ianswer));      
        } 
            prekey = 5;
        	frist=false;
   }
   public void sele()//四则运算,进制判断方法
   { 	if(fchange==2){
          operater1();
          }else{
          fristchange();
          operater2();
          lastchange();
            }
   }
   }
      	//
  

⌨️ 快捷键说明

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