标题:java计算器问题问题
取消只看楼主
请问你好吗
Rank: 2
等 级:论坛游民
帖 子:64
专家分:51
注 册:2011-11-27
结帖率:81.48%
 问题点数:0 回复次数:0 
java计算器问题问题
//编译器没有报错 界面能出来  但是不能进行符号运算不知道那里错了请高手指教
import java.awt.*;
import java.awt.event.*;

public class CalculatorGUI {
   
  // 定义按钮
  private Button key0, key1, key2, key3, key4;
  private Button key5, key6, key7, key8, key9;
  private Button keyequal, keyplus, keyminus;
  private Button keyperiod, keymult, keydiv;
  
  // 定义存放按钮的区域
  private Panel buttonArea;
  
  // 定义存放运算结果的区域
  private Label answer;
  
  // 用来实现运算功能的类的对象实例化
  private Calculator calculator;
  private boolean    readyForNextNumber;

  public CalculatorGUI() {
     //calculator = new Calculator();
    readyForNextNumber = true;

    answer = new Label("0.0",Label.RIGHT);

    key0 = new Button("0");
    key1 = new Button("1");
    key2 = new Button("2");
    key3 = new Button("3");
    key4 = new Button("4");
    key5 = new Button("5");
    key6 = new Button("6");
    key7 = new Button("7");
    key8 = new Button("8");
    key9 = new Button("9");
    keyequal = new Button("=");
    keyplus = new Button("+");
    keyminus = new Button("-");
    keymult = new Button("*");
    keydiv = new Button("/");
    keyperiod = new Button(".");
    buttonArea = new Panel();
  }

  public void launchFrame() {
    buttonArea.setLayout(new GridLayout(4,4));

    buttonArea.add(key7);
    buttonArea.add(key8);
    buttonArea.add(key9);
    buttonArea.add(keyplus);
    buttonArea.add(key4);
    buttonArea.add(key5);
    buttonArea.add(key6);
    buttonArea.add(keyminus);
    buttonArea.add(key1);
    buttonArea.add(key2);
    buttonArea.add(key3);
    buttonArea.add(keymult);
    buttonArea.add(key0);
    buttonArea.add(keyperiod);
    buttonArea.add(keyequal);
    buttonArea.add(keydiv);

    // 设置事件接收句柄
    OpButtonHanlder op_handler = new OpButtonHanlder();
    NumberButtonHanlder number_handler = new NumberButtonHanlder();
    key0.addActionListener(number_handler);
    key1.addActionListener(number_handler);
    key2.addActionListener(number_handler);
    key3.addActionListener(number_handler);
    key4.addActionListener(number_handler);
    key5.addActionListener(number_handler);
    key6.addActionListener(number_handler);
    key7.addActionListener(number_handler);
    key8.addActionListener(number_handler);
    key9.addActionListener(number_handler);
    keyperiod.addActionListener(number_handler);
    keyplus.addActionListener(op_handler);
    keyminus.addActionListener(op_handler);
    keymult.addActionListener(op_handler);
    keydiv.addActionListener(op_handler);
    keyequal.addActionListener(op_handler);

    // 新建一个帧,并且加上消息监听
    Frame f = new Frame("Calculator");
    f.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
      System.exit(0);
    }
    });
    f.setSize(200, 200);

    f.add(answer, BorderLayout.NORTH);
    f.add(buttonArea, BorderLayout.CENTER);
    f.setVisible (true);
  }

  //响应按钮事件,并根据不同的按钮事件进行不同的运算
  private class OpButtonHanlder implements ActionListener {
    public void actionPerformed(ActionEvent event) {
      char  operator = event.getActionCommand().charAt(0);
      String result = "";
      switch  ( operator ) {
      case '+':
    result = calculator.opAdd(answer.getText());
    break;
      case '-':
    result = calculator.opSubtract(answer.getText());
    break;
      case '*':
    result = calculator.opMultiply(answer.getText());
    break;
      case '/':
    result = calculator.opDivide(answer.getText());
    break;
      case '=':
    result = calculator.opEquals(answer.getText());
    break;
      }
      answer.setText(result);
      readyForNextNumber = true;
    }
  }

  //处理连续运算时主界面的显示
  private class NumberButtonHanlder implements ActionListener {
    public void actionPerformed(ActionEvent event) {
      if ( readyForNextNumber ) {
    answer.setText(event.getActionCommand());
    readyForNextNumber = false;
      } else {
    answer.setText(answer.getText() + event.getActionCommand().charAt(0));
      }
    }
  }

 //主函数,也是该应用程序的执行入口处
  public static void main(String args[]) {
    CalculatorGUI Calculator = new CalculatorGUI();
    Calculator.launchFrame();
  }
}
搜索更多相关主题的帖子: class 计算器 private public import 
2012-03-24 13:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-364198-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.409909 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved