题目说的是一个毛病 这个计算器是仿照例子了 但是还有一个毛病就是 一个数字加一个数字后连着点击符号就倍增计算
谢谢帮忙解答 这个能运行的 呵呵
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class MyCalculator extends JFrame implements ActionListener
{
public boolean dotExist, operated, equaled,op; // 演算を助けてboolean変数
private double  Num1; //  前の結果
private char lastOperator; // 前の演算子
public JTextField text; // 结果ところ
private JButton dot, plus, minus, multi, div,  equal, clear; // 演算子
private JButton[] numbers; // 数字
public double num1,num2; // 演算を助けて変数
// 构造者
public MyCalculator()
{
setTitle("Calculator");
// 初始化变量
dotExist = false; // 小数点
operated = false; // 演算子
equaled = false; // イコール
Num1 = 0;
lastOperator = '?';
num1 = 0 ;
num2 = 0 ;
// 初めて
text = new JTextField("0");
text.setEditable(false);
text.setHorizontalAlignment(JTextField.RIGHT);
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("/");
 equal = new JButton("=");
 clear = new JButton("AC");
// 将窗口物体放入窗口
GridBagLayout layout = new GridBagLayout();
getContentPane().setLayout(layout);
add(layout, text, 0, 0, 4, 1);
add(layout, numbers[1], 1, 0, 1, 1);
add(layout, numbers[2], 1, 1, 1, 1);
add(layout, numbers[3], 1, 2, 1, 1);
add(layout, numbers[4], 2, 0, 1, 1);
add(layout, numbers[5], 2, 1, 1, 1);
add(layout, numbers[6], 2, 2, 1, 1);
add(layout, numbers[7], 3, 0, 1, 1);
add(layout, numbers[8], 3, 1, 1, 1);
add(layout, numbers[9], 3, 2, 1, 1);
add(layout, dot, 4, 0, 1, 1);
add(layout, numbers[0], 4, 1, 1, 1);
add(layout, plus, 1, 3, 1, 1);
add(layout, minus, 2, 3, 1, 1);
add(layout, multi, 3, 3, 1, 1);
add(layout, div, 4, 3, 1, 1);
add(layout, equal, 4, 2, 1, 1);
add(layout, clear, 5, 0, 4, 1);}// ボタンのメソッド
public void actionPerformed(ActionEvent e)
{
JButton btn = (JButton)e.getSource();
if (btn == clear)
{
text.setText("0");
dotExist = false;
Num1 = 0;
lastOperator = '?';
num1 = 0 ;
num2 = 0 ;
}
else if (btn == equal)
{
op('=');}
else if (btn == plus)
{
op('+');
equaled = false;
}
else if (btn == minus)
{
op('-');
equaled = false;
}
else if (btn == multi)
{
op('*');
equaled = false;
}
else if (btn == div)
{
op('/');
equaled = false;
}
else
{
if (equaled)
Num1 = 0;
for (int i = 0; i < 10; i++)
if (btn == numbers[i])
{
if (text.getText().equals("0"))
text.setText("" + i);
else if(! operated)
text.setText(text.getText() + i);
else
{
text.setText("" + i);
operated = false;
}
}
if (btn == dot && ! dotExist)
{
text.setText(text.getText() + ".");
dotExist = true;
}
}
}
// 演算する方法
public void op( char operator)
{
double  Num2 = Double.valueOf(text.getText()).intValue();
if (lastOperator == '?')
{
    Num1 = Num2;
    lastOperator = operator;
}
else if (lastOperator == '+' )
{
Num1+=Num2 ;
}
else if (lastOperator == '-')Num1 -= Num2;else if (lastOperator == '*')
{
 lastOperator = operator;
 Num1 *= Num2;
}
else if (lastOperator == '/')

    {
    if(Num2 != 0)
    Num1 /= Num2;
    else
    new Exception("Error");
    } 
}
else if (lastOperator == '=' && equaled)
Num1 = Num2;
text.setText("" + Num1);
operated = true;
lastOperator = operator;}// 画面、GridBagLayoutの方法
private void add(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)
{
MyCalculator calc = new MyCalculator();
calc.setSize(290, 400);
calc.setVisible(true);
}
}