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

📄 calculator.java

📁 能实现类似于windows中计算器的功能~
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
////////////////////////////////////////////////////开始设计窗体的基本布局
public class Calculator extends JFrame implements ActionListener {  //导入动作监听接口
private JFrame frame;
private JTextField textAnswer; 
private JPanel panel, panel1, panel2, panel3,panel4; 
private JTextField textMemory; 
private JButton buttonBk, buttonCe, buttonC,buttonPI; 
private JButton button[]; 
private JButton buttonxy,buttonln,buttonjie,buttonsin,buttoncos,buttontan;
//private JButton buttonMC, buttonMR, buttonMS, buttonMAdd; 
private JButton buttonDot, buttonAddAndSub, buttonAdd, buttonSub, buttonMul, buttonDiv, buttonMod; 
private JButton buttonSqrt, buttonDao, buttonEqual; 
private JMenuBar mainMenu; 
private JMenu editMenu,  helpMenu;
private JMenuItem copyItem, pasteItem,topHelp, aboutCal;
private String Operation = null,Num=null;
private boolean start = true;
private String copy;
JTextArea help;
JScrollPane scrollHelp;
////////////////////////////////////////////////////计算器的基本构造方法
public Calculator(){
frame = new JFrame("计算器");
panel = new JPanel();
Container cont = frame.getContentPane();
cont.add(panel);
panel.setLayout(new BorderLayout()); 
textAnswer = new JTextField(15);
textAnswer.setText("0");
//////////////////////////////////////////定义菜单的基本功能
mainMenu = new JMenuBar();
editMenu = new JMenu("编辑(E)");
editMenu.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
copyItem = new JMenuItem("复制(C) Ctrl+C");
copyItem.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
copyItem.addActionListener(this); 
pasteItem = new JMenuItem("粘贴(V) Ctrl+V");
pasteItem.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
pasteItem.addActionListener(this); 
editMenu.add(copyItem);
editMenu.add(pasteItem);
helpMenu = new JMenu("帮助(H)");
helpMenu.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
topHelp = new JMenuItem("帮助主题(H)");
topHelp.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
topHelp.addActionListener(this);
help = new JTextArea(5,20);
scrollHelp = new JScrollPane(help);
help.setEditable(false);
help.append("使用简单的计算器系统\n");
help.append("1. 键入计算的第一个数字。\n");
help.append("2. 单击'+'执行加、'-'执行减、'*'执行乘或'/'执行除'PI'调用派\n");
help.append("   单击'ln'求对数、'sin'求正弦、'cos'求余弦、'tan'正切、'x^y'再输入第个数求x的y次方.\n");
help.append("3. 输入计算的下一个数字。\n");
help.append("4. 输入所有剩余的运算符和数字。\n");
help.append("5. 单击'='。\n");
aboutCal = new JMenuItem("关于计算器(A)");
aboutCal.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
aboutCal.addActionListener(this);
helpMenu.add(topHelp);
helpMenu.addSeparator();
helpMenu.add(aboutCal);
mainMenu.add(editMenu);
mainMenu.add(helpMenu);
panel1=new JPanel();
panel.add(mainMenu, BorderLayout.NORTH);
panel.add(textAnswer, BorderLayout.CENTER);
panel.add(panel1, BorderLayout.SOUTH);
panel1.setLayout(new BorderLayout());
panel2 = new JPanel();
panel3 = new JPanel();
panel4 = new JPanel();
panel1.add(panel2, BorderLayout.NORTH);
panel1.add(panel4, BorderLayout.CENTER);
panel1.add(panel3, BorderLayout.SOUTH);
/////////////////////////////////////////////////////////////设计面板panel2 14
panel2.setLayout(new FlowLayout(FlowLayout.LEFT));
panel4.setLayout(new FlowLayout(FlowLayout.LEFT));
textMemory = new JTextField(4); 
textMemory.setEditable(false);
buttonBk = new JButton("Backspace");
buttonBk.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));///颜色
buttonBk.setForeground(Color.black);  
buttonCe = new JButton("  CE  ");
buttonCe.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
buttonCe.setForeground(Color.black);  
buttonC = new JButton("  C  ");
buttonC.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
buttonC.setForeground(Color.black); 
buttonxy = new JButton(" x^y");
buttonxy.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
buttonxy.setForeground(Color.magenta); 
buttonln = new JButton(" ln");
buttonln.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
buttonln.setForeground(Color.magenta); 
buttonjie = new JButton(" n! ");
buttonjie.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
buttonjie.setForeground(Color.magenta);
buttonsin = new JButton(" sin");
buttonsin.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
buttonsin.setForeground(Color.magenta);
buttoncos = new JButton(" cos");
buttoncos.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
buttoncos.setForeground(Color.magenta);
buttontan = new JButton(" tan");
buttontan.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
buttontan.setForeground(Color.magenta);
buttonPI= new JButton(" PI ");
buttonPI.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
buttonPI.setForeground(Color.magenta);
buttonBk.addActionListener(this); 
buttonCe.addActionListener(this); 
buttonC.addActionListener(this);
buttonxy.addActionListener(this);
buttonln.addActionListener(this);
buttonjie.addActionListener(this);
buttonsin.addActionListener(this);
buttoncos.addActionListener(this);
buttontan.addActionListener(this);
buttonPI.addActionListener(this);
panel2.add(textMemory); 
panel2.add(buttonBk); 
panel2.add(buttonCe); 
panel2.add(buttonC);
panel2.add(buttonPI);
panel4.add(buttonxy);
panel4.add(buttonln);
panel4.add(buttonjie);
panel4.add(buttonsin);
panel4.add(buttoncos);
panel4.add(buttontan);
//////////////////////////////////////设计面板panel3
panel3.setLayout(new GridLayout(4,6));
button = new JButton[10]; 
for (int i = 0; i < button.length; i++) {
button [i] = new JButton(Integer.toString(i));
button [i].setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
button [i].setForeground (Color.blue);
button [i].addActionListener(this); 
}
//buttonMC = new JButton("MC");
//buttonMC.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
//buttonMC.setForeground(Color.green); 
//buttonMC.addActionListener(this); 
//buttonMR = new JButton("MR");
//buttonMR.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
//buttonMR.setForeground(Color.green);
//buttonMR.addActionListener(this);  
//buttonMS = new JButton("MS");
//buttonMS.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
//buttonMS.setForeground(Color.green);
//buttonMS.addActionListener(this);  
//buttonMAdd = new JButton("M+");
//buttonMAdd.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
//buttonMAdd.setForeground(Color.green);
//buttonMAdd.addActionListener(this);   
buttonAddAndSub = new JButton("+/-");
buttonAddAndSub.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
buttonAddAndSub.setForeground(Color.blue); 
buttonAddAndSub.addActionListener(this);
buttonDot = new JButton(".");
buttonDot.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
buttonDot.setForeground(Color.blue);
buttonDot.addActionListener(this);  
buttonAdd = new JButton("+");
buttonAdd.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
buttonAdd.setForeground(Color.red);
buttonAdd.addActionListener(this);   
buttonSub = new JButton("-"); 
buttonSub.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
buttonSub.setForeground(Color.red);
buttonSub.addActionListener(this); 
buttonMul = new JButton("*");
buttonMul.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
buttonMul.setForeground(Color.red); 
buttonMul.addActionListener(this); 
buttonDiv = new JButton("/");
buttonDiv.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
buttonDiv.setForeground(Color.red);  
buttonDiv.addActionListener(this);
buttonMod = new JButton("%");
buttonMod.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
buttonMod.setForeground(Color.magenta);
buttonMod.addActionListener(this);  
buttonSqrt = new JButton("sqrt"); 
buttonSqrt.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
buttonSqrt.setForeground(Color.magenta); 
buttonSqrt.addActionListener(this);
buttonDao = new JButton("1/x");
buttonDao.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
buttonDao.setForeground(Color.magenta);
buttonDao.addActionListener(this);   
buttonEqual = new JButton("=");
buttonEqual.setFont (new java.awt.Font("Helvetica",Font.PLAIN,14));
buttonEqual.setForeground(Color.black); 
buttonEqual.addActionListener(this); 
//panel3.add(buttonMC); 
panel3.add(button[7]); 
panel3.add(button[8]); 
panel3.add(button[9]); 
panel3.add(buttonDiv); 
panel3.add(buttonSqrt); 
//panel3.add(buttonMR); 
panel3.add(button[4]); 
panel3.add(button[5]); 
panel3.add(button[6]); 
panel3.add(buttonMul); 
panel3.add(buttonMod); 
//panel3.add(buttonMS); 
panel3.add(button[1]); 
panel3.add(button[2]); 
panel3.add(button[3]); 
panel3.add(buttonSub); 
panel3.add(buttonDao); 
//panel3.add(buttonMAdd); 
panel3.add(button[0]); 
panel3.add(buttonAddAndSub); 
panel3.add(buttonDot); 
panel3.add(buttonAdd); 
panel3.add(buttonEqual);
frame.setResizable(false); 
frame.addWindowListener(new WindowAdapter(){
	public void windowClosing(WindowEvent e){
	    System.exit(0);
	}
});
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
frame.pack(); 
frame.show(); 
}
///////////////////////////////////////////////////为各按钮注册监听者
public void actionPerformed(ActionEvent e){
  if(e.getSource() == button[0]){
    if(textAnswer.getText().equals("0")) return;
        if(!start)textAnswer.setText (textAnswer.getText() + Integer.toString(0));
    else textAnswer.setText("0" );
    start = false;
    }
  else if(e.getSource() == button[1]){
  	if (!start)textAnswer.setText(textAnswer.getText() + Integer.toString(1)); 
    else textAnswer.setText( "1" );
    start = false;
  }
  if(e.getSource() == button[2]){
  	if (!start)textAnswer.setText(textAnswer.getText() + Integer.toString(2)); 
    else textAnswer.setText( "2" );
    start = false;
  }
  if(e.getSource() == button[3]){
  	if (!start)textAnswer.setText(textAnswer.getText() + Integer.toString(3)); 
    else textAnswer.setText( "3" );
    start = false;
  }
  if(e.getSource() == button[4]){
  	if (!start)textAnswer.setText(textAnswer.getText() + Integer.toString(4)); 
    else textAnswer.setText( "4" );
    start = false;
  }
  if(e.getSource() == button[5]){
  	if (!start)textAnswer.setText(textAnswer.getText() + Integer.toString(5)); 
    else textAnswer.setText( "5" );
    start = false;
  }
  if(e.getSource() == button[6]){
  	if (!start)textAnswer.setText(textAnswer.getText() + Integer.toString(6)); 
    else textAnswer.setText( "6" );
    start = false;
  }
  if(e.getSource() == button[7]){
  	if (!start)textAnswer.setText(textAnswer.getText() + Integer.toString(7)); 
    else textAnswer.setText( "7" );
    start = false;
  }
  if(e.getSource() == button[8]){
  	if (!start)textAnswer.setText(textAnswer.getText() + Integer.toString(8)); 
    else textAnswer.setText( "8" );
    start = false;
  }

⌨️ 快捷键说明

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