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

📄 calculator.java

📁 JAVA做的比较简单的计算器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 * calculator.java
 *
 * Created on 2007年11月22日, 下午6:30
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

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

public class calculator extends JFrame implements ActionListener
{
 JFrame frame;
 
 private JButton jia=new JButton("+"); 
 private JButton jian=new JButton("-"); 
 private JButton cheng=new JButton("*"); 
 private JButton chu=new JButton("/"); 
 private JButton qiuyi=new JButton("%"); 
 private JButton deng=new JButton("="); 
 private JButton fu=new JButton("+/-");
 private JButton dian=new JButton(".");
 private JButton kai=new JButton("sqrt");
 private JButton diao=new JButton("1/x");
 private JButton aa=new JButton("A"); 
 private JButton bb=new JButton("B"); 
 private JButton cc=new JButton("C");
 private JButton dd=new JButton("D");
 private JButton ee=new JButton("E");
 private JButton ff=new JButton("F");
 
 private TextField k1=new TextField(); 
 private objConversion convert = new objConversion();
 
 JMenuItem copy,paste,s,t,help,about,me;
 JRadioButton sixteen,ten,eight,two;
 JButton backspace,ce,c,num0,num1,num2,num3,num4,num5,num6,num7,num8,num9;
 Container cp;
 
 JTextField text;
 String copycontent="";
 boolean clickable=true,clear=true;
 int all=0;
 double qian; 
 String fuhao;
 int jin=10,first=1;
 
 
 public calculator() 
 {
  setTitle("计算器");
  setSize(400,300);
  setLocation(250,200);
  text=new JTextField(25);
 // text.setEnabled(false);
  text.setText("0.");
  text.setHorizontalAlignment(JTextField.RIGHT);//从右到左

 
  JPanel cp1=new JPanel();
  JPanel cp2=new JPanel();
  JPanel cp3=new JPanel();
  

  cp=getContentPane();
  cp.add(cp1,"North");
  cp.add(cp2,"Center");
  cp.add(cp3,"South");
  
  cp1.setLayout(new GridLayout(1,6));
  cp2.setLayout(new GridLayout(2,4));
  cp3.setLayout(new GridLayout(6,6));
  
  sixteen=new JRadioButton("十六进制");
  sixteen.setVisible(false);
  ten=new JRadioButton("十进制",true);
  ten.setVisible(false);
  eight=new JRadioButton("八进制");
  eight.setVisible(false); 
  two=new JRadioButton("二进制");
  two.setVisible(false);
  sixteen.addActionListener(this);
  ten.addActionListener(this);
  eight.addActionListener(this);
  two.addActionListener(this); 
  ButtonGroup btg=new ButtonGroup();
  
  btg.add(sixteen); 
  btg.add(ten); 
  btg.add(eight); 
  btg.add(two);
  
  JTextField t3=new JTextField(25);
  cp1.add(text);
 // text.setEnabled(false);
  text.setEditable(false);
  text.setBackground(new Color(255, 255, 255));
  
  cp2.add(sixteen);
  cp2.add(ten);
  cp2.add(eight);
  cp2.add(two);
  
  backspace=new JButton("Backspace");
  backspace.setForeground(new Color(255,0,0));
  backspace.addActionListener(this);
  ce=new JButton("CE");
  ce.setForeground(new Color(255,0,0));
  ce.addActionListener(this);
  c=new JButton("C");
  c.setForeground(new Color(255,0,0));
  c.addActionListener(this);
  k1.setVisible(false);
  cp2.add(k1);
  cp2.add(backspace);
  cp2.add(ce);
  cp2.add(c);
  

  num0=new JButton("0"); 
  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"); 

 

  cp3.add(num7);
  num7.addActionListener(this);
  cp3.add(num8);
  num8.addActionListener(this);
  cp3.add(num9);
  num9.addActionListener(this);
  cp3.add(chu);
  chu.setForeground(new Color(255,0,0));
  chu.addActionListener(this);
  cp3.add(kai);
  kai.addActionListener(this);
  cp3.add(num4);
  num4.addActionListener(this);
  cp3.add(num5);
  num5.addActionListener(this);
  cp3.add(num6);
  num6.addActionListener(this);
  cp3.add(cheng);
  cheng.setForeground(new Color(255,0,0));
  cheng.addActionListener(this);
  cp3.add(qiuyi);
  qiuyi.addActionListener(this);
  cp3.add(num1);
  num1.addActionListener(this);
  cp3.add(num2);
  num2.addActionListener(this);
  cp3.add(num3);
  num3.addActionListener(this);
  cp3.add(jian);
  jian.setForeground(new Color(255,0,0));
  jian.addActionListener(this);
  cp3.add(diao);
  diao.addActionListener(this);
  cp3.add(num0);
  num0.addActionListener(this);
  cp3.add(fu);
  fu.addActionListener(this);
  cp3.add(dian);
  dian.addActionListener(this);
  cp3.add(jia);
  jia.setForeground(new Color(255,0,0));
  jia.addActionListener(this);
  cp3.add(deng);
  deng.setForeground(new Color(255,0,0));
  deng.addActionListener(this);
  cp3.add(aa);
  aa.addActionListener(this);
  cp3.add(bb);
  bb.addActionListener(this);
  cp3.add(cc);
  cc.addActionListener(this);
  cp3.add(dd);
  dd.addActionListener(this);
  cp3.add(ee);
  ee.addActionListener(this);
  cp3.add(ff);
  ff.addActionListener(this);
  aa.setVisible(false);
  bb.setVisible(false);
  cc.setVisible(false);
  dd.setVisible(false);
  ee.setVisible(false);
  ff.setVisible(false);

     
  JMenuBar mainMenu = new JMenuBar();
  setJMenuBar(mainMenu); 
  JMenu editMenu = new JMenu("编辑"); 
  JMenu viewMenu = new JMenu("查看"); 
  mainMenu.add(editMenu);
  mainMenu.add(viewMenu);

  
  copy = new JMenuItem(" 复制"); 
  paste = new JMenuItem(" 粘贴"); 
  KeyStroke copyks=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK);
    copy.setAccelerator(copyks);//设置退出菜单选项加上快捷键
    KeyStroke pasteks=KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK);
    paste.setAccelerator(pasteks);//设置退出菜单选项加上快捷键
  editMenu.add(copy);
  editMenu.add(paste);
  copy.addActionListener(this);
  paste.addActionListener(this); 
  
  t = new JMenuItem("●标准型"); 
  s = new JMenuItem("   科学型"); 
  viewMenu.add(t);
  viewMenu.add(s);
  t.addActionListener(this);
  s.addActionListener(this);

 addWindowListener(new WindowDestroyer());//结束窗口
 }
 
 public void actionPerformed(ActionEvent e)
 
 {//响应动作代码
  
  if(first==1)
  text.setText("");
  first=0;//第一次把文本框0.清空
 
   Object temp = e.getSource();

   if(temp==copy) 
   { 
   copycontent = text.getText(); 
  } 
  if(temp==paste) 
   { 
   text.setText(text.getText()+copycontent);
  
  } 
  if(temp==t)
  {//标准
   
   sixteen.setVisible(false);
   ten.setVisible(false);
   eight.setVisible(false);
   two.setVisible(false);
   t.setText("●标准型");
   s.setText("    科学型");
   aa.setVisible(false);
   bb.setVisible(false);
   cc.setVisible(false);
   dd.setVisible(false);
   ee.setVisible(false);
   ff.setVisible(false);
  }
  if(temp==s)
  {//科学
   
   sixteen.setVisible(true);
   ten.setVisible(true);
   eight.setVisible(true);
   two.setVisible(true);
   t.setText("   标准型");
   s.setText("●科学型");
   aa.setVisible(true);
   bb.setVisible(true);
   cc.setVisible(true);
   dd.setVisible(true);
   ee.setVisible(true);
   ff.setVisible(true);
   aa.setEnabled(false);
   bb.setEnabled(false);
   cc.setEnabled(false);
   dd.setEnabled(false);
   ee.setEnabled(false);
   ff.setEnabled(false);
   
   
  }
  if(temp==help)
  { //打开系统帮助文件 要查资料
   try
   {
     String filePath = "C:/WINDOWS/Help/calc.chm";
      Runtime.getRuntime().exec("cmd.exe /c "+filePath);

   
   }
   catch(Exception eeee)
   {
    System.out.println("打开系统的计算器出错");    
   }
  }
  
  if(temp==me)
  {
   try
   {
    Process p = Runtime.getRuntime().exec("explorer http://blog.sina.com.cn/m/yangcai");
   }
   catch(Exception eeee)
   {
    System.out.println("打开指定网页出错");    
   } 
  }
  
  
  try
  {
  if(temp==sixteen)
  {
   String hex=text.getText();
   int inthex=Integer.parseInt(hex,jin);//先把数变为10进制  
   text.setText(convert.decHex(inthex)) ;
   jin=16;
   aa.setEnabled(true);
   bb.setEnabled(true);
   cc.setEnabled(true);
   dd.setEnabled(true);
   ee.setEnabled(true);
   ff.setEnabled(true);
   num2.setEnabled(true);
   num3.setEnabled(true);
   num4.setEnabled(true);
   num5.setEnabled(true);
   num6.setEnabled(true);
   num7.setEnabled(true);
   num8.setEnabled(true);
   num9.setEnabled(true);
 
  }
  if(temp==eight)
  {
   String oct =text.getText();
   int intoct=Integer.parseInt(oct,jin);  
   text.setText(convert.decOct(intoct)) ;
   jin=8;
   
   aa.setEnabled(false);
   bb.setEnabled(false);
   cc.setEnabled(false);
   dd.setEnabled(false);
   ee.setEnabled(false);
   ff.setEnabled(false);
   num2.setEnabled(true);
   num3.setEnabled(true);
   num4.setEnabled(true);
   num5.setEnabled(true);
   num6.setEnabled(true);
   num7.setEnabled(true);
   num8.setEnabled(false);
   num9.setEnabled(false);
  }
  if(temp==two)
  {
   String bin=text.getText();
   int intbin=Integer.parseInt(bin,jin);
   text.setText(convert.decBin(intbin));
   jin=2;
   
   aa.setEnabled(false);
   bb.setEnabled(false);
   cc.setEnabled(false);
   dd.setEnabled(false);
   ee.setEnabled(false);
   ff.setEnabled(false);
   num2.setEnabled(false);
   num3.setEnabled(false);
   num4.setEnabled(false);
   num5.setEnabled(false);
   num6.setEnabled(false);
   num7.setEnabled(false);
   num8.setEnabled(false);
   num9.setEnabled(false);
  }
  if(temp==ten)
  {
   String dec=text.getText();
   int intdec=Integer.parseInt(dec,jin);
  // text.setText(convert.decDec(intdec));  //本句会把123变成321
   text.setText(intdec+"");
   jin=10;
   aa.setEnabled(false);
   bb.setEnabled(false);
   cc.setEnabled(false);
   dd.setEnabled(false);
   ee.setEnabled(false);
   ff.setEnabled(false);
   num2.setEnabled(true);
   num3.setEnabled(true);
   num4.setEnabled(true);
   num5.setEnabled(true);
   num6.setEnabled(true);
   num7.setEnabled(true);
   num8.setEnabled(true);
   num9.setEnabled(true);
  }
  }
  catch(Exception ee)
  {
   System.out.println("没有输入字符!");
   text.setText("错误!");
   clear=false;
  }
  
  if(temp==backspace)
  {//退格
  String s = text.getText(); 
  text.setText(""); 
  for (int i = 0; i < s.length() - 1; i++)
  { 
  char a = s.charAt(i); 
  text.setText(text.getText() + a); 
  }
  }
  
  if (temp==ce) 
  { 
   text.setText("0."); 
   clear=true;
   first=1;
  } 
  if (temp==c)
  { 
   text.setText("0.");   ;
   clear=true;

⌨️ 快捷键说明

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