日期:2014-05-20  浏览次数:20846 次

java.lang.ClassCastException是什么错误
package gui;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.AncestorListener;
import javax.swing.plaf.basic.BasicButtonListener;

public class jsqFrame extends JFrame implements ActionListener {

private static final long serialVersionUID = -2703894706495187706L;
private boolean operated, equaled; 
private double storedNumber; 
private char lastOperator;
private JTextField out; 
private JButton add;
private JButton jian;
private JButton cheng;
private JButton chu;
private JButton dy;
private JButton[] numbers;
private JButton clear;
public jsqFrame() {



operated = false; 
equaled = false;
storedNumber = 0;
lastOperator = '?';
out = new JTextField("0");
out.setEditable(false);
numbers = new JButton[10];
int i = 0;
numbers[i] = new JButton("" + i);
this.setTitle("计算器");
this.setSize(300, 200);
this.setLocation(400, 300);
out = new JTextField(20);
clear = new JButton("c");
add = new JButton("+");
jian = new JButton("-");
cheng = new JButton("*");
chu = new JButton("/");
dy = new JButton("=");
out.setEditable(false);
equaled = false;


ActionListener d = (ActionListener) new BasicButtonListener(null);


JPanel north = new JPanel();
JPanel center = new JPanel();
north.add(out);
north.add(clear);
GridLayout gl = new GridLayout(4,4);
center.setLayout(gl);
for(int i1= 1;i1<4;i1++)
{
ActionListener a = (ActionListener) new BasicButtonListener(null);
JButton btn = new JButton(""+i1);
center.add(btn);
btn.addActionListener(a);
}

center.add(add);
for(int i1 = 4;i1<7;i1++)
{
AncestorListener b = (AncestorListener) new BasicButtonListener(null);
JButton btn = new JButton(""+i1);
center.add(btn);
btn.addAncestorListener(b);
}
center.add(jian);
for(int i1 = 7;i1<10;i1++)
{
JButton btn = new JButton(""+i1);
ActionListener c = (ActionListener) new BasicButtonListener(null);
center.add(btn);
btn.addActionListener(c);
}
center.add(cheng);
JButton zero = new JButton(""+0);
zero.addActionListener(d);
JButton temp = new JButton("");
center.add(zero);
center.add(temp);
center.add(dy);
center.add(chu);
this.add(north, BorderLayout.NORTH);
this.add(center,BorderLayout.CENTER);


}


public void actionPerformed(ActionEvent e) {
JButton btn = (JButton) e.getSource();
if (btn == clear) {
out.setText("0");

storedNumber = 0;
lastOperator = '?';
} else if (btn == dy) {
operate1('=');
equaled = true;
} else if (btn == add) {
operate1('+');
equaled = false;
} else if (btn == jian) {
operate1('-');
equaled = false;
} else if (btn == cheng) {
operate1('*');
equaled = false;
} else if (btn == chu) {
operate1('/');
equaled = false;
}


 
 if (!equaled);
storedNumber = 0;
JButton btn4 = null;
for (int i = 0; i < 10; i++)
if (btn4 == numbers[i]) {
if (out.getText().equals("0"))
out.setText("" + i);
else if (!operated)
out.setText(out.getText() + i);
else {
out.setText("" + i);
operated = false;
}
}


}


private void operate1(char operator) {