我真的不明白这个运行时错误:
java.lang.ClassCastException:无法将javax.swing.Timer强制转换为
javax.swing.JButton。
这是我的代码:
timer = new Timer(DELAY, new ButtonListener());
private JButton[] buttons = new JButton[3];
buttons[0] = new JButton("Circle");
buttons[1] = new JButton("Start");
buttons[2] = new JButton("Stop");
for(JButton button : buttons){
button.addActionListener(new ButtonListener());
controlPanel.add(button);
}
public void actionPerformed(ActionEvent e){
JButton button = (JButton) e.getSource();
if(button.getText().equals("Start")){
timer.start();
}else
if(button.getText().equals("Stop")){
timer.stop();
}else
if(button.getText().equals("Circle")){
shapes[count] = new Circle();
drawPanel.repaint();
count++;
}
}
最佳答案
摇摆计时器也可以触发动作事件。您只需要在代码中进行类检查:
public void actionPerformed(ActionEvent e){
if (e.getSource() instanceof (JButton)) {
JButton button = (JButton) e.getSource();
if(button.getText().equals("Start")){
timer.start();
}else
if(button.getText().equals("Stop")){
timer.stop();
}else
if(button.getText().equals("Circle")){
shapes[count] = new Circle();
drawPanel.repaint();
count++;
}
}else (e.getSource() instanceof (Timer)) {
//deal with timer
}
}
关于java - Java异常:java.lang.ClassCastException:javax.swing.Timer无法转换为javax.swing.JButton,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25747473/