我想移动我的JPanel。但是我想要平稳运动,但是当我把我的方法放进去时
void changeLocationCard()
{
new Thread() {
public void runCard() {
for(int i = 0; i < 300; i++) {
SwingUtilities.invokeLater(new Runnable() {
});
pause(500);
}
}
}.runCard();
}
我遇到问题&#34;不是抽象的,并且不会覆盖在Runnable中运行的抽象方法。
宣言类
公共类GamePanel扩展了javax.swing.JPanel {}
有人知道为什么吗?
答案 0 :(得分:0)
编译器正在抱怨,因为你在这里声明了匿名类:
SwingUtilities.invokeLater(new Runnable() {
});
不是抽象的,也没有实现run方法。
那就是说,为什么要创建一个Thread来调用runCard方法?
答案 1 :(得分:0)
尝试:
public void changeLocationCard() {
new Thread(new Runnable() {
public void run() {
for(int i = 0; i < 300; i++) {
SwingUtilities.invokeLater(new Runnable() {
public void run () {
runCard();
}
});
pause(500);
}
}
}).start();
}
或者从Swing-Api查看TimerTask
以获取更多基于API的方法。