内容:
    写好一个计算器的Calculator3.java的类,代码如下:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class Calculator3 extends JFrame implements ActionListener{
    private boolean dotExist,operated,equaled;
    private double storedNumber;
    private char lastOperator;
    private JTextField operation;
    private JButton dot,plus,minus,multi,div,sqrt,equal,changePN,clear;
    private JButton[] numbers;
    
    public Calculator3() {
        setTitle("Calculator");
        //
        dotExist = false;
        operated = false;
        equaled = false;
        storedNumber = 0;
        lastOperator = '?';
        //
        operation = new JTextField("0");
        operation.setEditable(false);
        numbers = new JButton[10];
        for (int i = 0; i < 10; i++) {
            numbers[i] = new JButton("" + i);
        }
        dot = new JButton(".");
        plus = new JButton("+");
        minus = new JButton("-");
        multi = new JButton("*");
        div = new JButton("/");
        sqrt = new JButton("√");
        equal = new JButton("=");
        changePN = new JButton("±");
        clear = new JButton("AC");
        //将窗口物体放入窗口 
        GridBagLayout layout = new GridBagLayout();
        getContentPane().setLayout(layout);
        addComponent(layout, operation, 0, 0, 4, 1);
        addComponent(layout, numbers[1], 1, 0, 1, 1);
        addComponent(layout, numbers[2], 1, 1, 1, 1);
        addComponent(layout, numbers[3], 1, 2, 1, 1);
        addComponent(layout, numbers[4], 2, 0, 1, 1);
        addComponent(layout, numbers[5], 2, 1, 1, 1);
        addComponent(layout, numbers[6], 2, 2, 1, 1);
        addComponent(layout, numbers[7], 3, 0, 1, 1);
        addComponent(layout, numbers[8], 3, 1, 1, 1);
        addComponent(layout, numbers[9], 3, 2, 1, 1);
        addComponent(layout, dot, 4, 0, 1, 1);
        addComponent(layout, numbers[0], 4, 1, 1, 1);
        addComponent(layout, sqrt, 4, 2, 1, 1);
        addComponent(layout, plus, 1, 3, 1, 1);
        addComponent(layout, minus, 2, 3, 1, 1);
        addComponent(layout, multi, 3, 3, 1, 1);
        addComponent(layout, div, 4, 3, 1, 1);
        addComponent(layout, equal, 5, 0, 2, 1);
        addComponent(layout, changePN, 5, 2, 1, 1);
        addComponent(layout, clear, 5, 3, 1, 1);    }
    //
    // 对按钮进行反应的方法 
    public void actionPerformed(ActionEvent e) {
        JButton btn = (JButton) e.getSource();
        if (btn == clear) {
            operation.setText("0");
            dotExist = false;
            storedNumber = 0;
            lastOperator = '?';
        } else if (btn == equal) {
            operate('=');
            equaled = true;
        } else if (btn == plus) {
            operate('+');
            equaled = false;
        } else if (btn == minus) {
            operate('-');
            equaled = false;
        } else if (btn == multi) {
            operate('*');
            equaled = false;
        } else if (btn == div) {
            operate('/');
            equaled = false;
        } else if (btn == changePN) {
            operate('p');
            operate('=');
            equaled = true;
        } else if (btn == sqrt) {
            operate('s');
            operate('=');
            equaled = true;
        } else {
            if (equaled) {
                storedNumber = 0;
            }
            for (int i = 0; i < 10; i++) {
                if (btn == numbers[i]) {
                    if (operation.getText().equals("0")) {
                        operation.setText("" + i);
                    } else if (!operated) {
                        operation.setText(operation.getText() + i);
                    } else {
                        operation.setText("" + i);
                        operated = false;
                    }
                }
            }
            if (btn == dot && !dotExist) {
                operation.setText(operation.getText() + ".");
                dotExist = true;
            }
        }
    }// 进行运算的方法 
    private void operate(char operator) {
        double currentNumber = Double.valueOf(operation.getText()).doubleValue();
        if (lastOperator == '?') {
            storedNumber = currentNumber;
        } else if (lastOperator == '+') {
            storedNumber += currentNumber;
        } else if (lastOperator == '-') {
            storedNumber -= currentNumber;
        } else if (lastOperator == '*') {
            storedNumber *= currentNumber;
        } else if (lastOperator == '/') {
            storedNumber /= currentNumber;
        } else if (lastOperator == 'p') {
            storedNumber *= -1;
        } else if (lastOperator == 's') {
            storedNumber = Math.sqrt(currentNumber);
        } else if (lastOperator == '=' && equaled) {
            storedNumber = currentNumber;
        }
        operation.setText("" + storedNumber);
        operated = true;
        lastOperator = operator;
    }
    // 快捷使用GridBagLayout的方法 
    private void addComponent(GridBagLayout layout, Component component,
            int row,int col,int width,int height)
    {
        GridBagConstraints constraints=new GridBagConstraints();
        constraints.fill=GridBagConstraints.BOTH;
        constraints.insets=new Insets(10,2,10,2);
        constraints.weightx=100;
        constraints.weighty=100;
        constraints.gridx=col;
        constraints.gridy=row;
        constraints.gridwidth=width;
        constraints.gridheight=height;
        layout.setConstraints(component, constraints);
        if(component instanceof JButton)
        {
            ((JButton)component).addActionListener(this);
        }
        getContentPane().add(component);
        
    }
    
    // 主方法初始化并显示窗口 
    public static void main(String[] args) {
        Calculator3 calc = new Calculator3();
        calc.setSize(290, 400);
        calc.setVisible(true);
    } }
如果我要在html里面写一个按钮,单击之后运行这个计算器该怎么改?

解决方案 »

  1.   

    你需要应用java web start技术参考
    http://blog.csdn.net/zmxj/archive/2005/02/22/297649.aspx
      

  2.   

    恕小子愚昧,大致看了下怎么用的是java Application,如果是html的话,如果用html标签都不用这么复杂的,只要用,<input type="button">标签,然后再写几个JS,<input type="button" onclick="方法">就可以了,你一定要用,可能使用bean导入可以吧。但是java Application的button好难看的,如果要好看建议用flex做好些。不知道有没有帮上点,友情UP下。