我认为我的标题很好地总结了我的问题。我对编程非常陌生(使用Head First Java进行大约2-3周的自我教学),并且我尝试使用Action Listener在屏幕上来回移动,直到用户终止程序。我的问题是我有一个Timer和2个类实现Action Listener。我可以让它来回运行一次,但这就是我所能做到的。使用Java中的EventHandlers来回移动形状
package Animation;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Window extends JPanel implements ActionListener{
int x = 100;
Timer timer = new Timer(5, this);
int velX = 2;
public void paintComponent(Graphics g){
super.paintComponent(g);
this.setBackground(Color.BLACK);
g.setColor(Color.BLUE);
g.fill3DRect(x, 150, 200, 200, true);
timer.start();
if(x >= 1000){
timer.addActionListener(new HandlerClass());
}//end if
}//end paintComponent
public void actionPerformed(ActionEvent e){
x += velX;
repaint();
}//end actionP method
public class HandlerClass implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
if(x >= 100){
x -= velX;
repaint();
}
}//end actionP
}//end Handler
}//end Window
我见过人们使用按钮来搬东西来回或移动的东西的设定次数的问题,但我希望定时器做的一切,直到用户退出。这样用户只需要观看。我没有将我的主要方法包括进来,因为它只是设置了gui并称为这个类。
谢谢,它现在看到它应该如何工作更有意义。我想我过于复杂了。 – user5311076