如何使用Swing Timer ActionListener

时间:2015-02-14 22:50:30

标签: java swing timer action actionlistener

所以我想完成一个动作然后暂停一段时间然后完成另一个动作。我听说Thread.sleep()并不好,因为在完成任务之前它会冻结gui或类似的东西。我知道我需要使用javax.swing.Timerjava.util.Timer执行一项任务,但我真的不明白如何执行。这是代码。积分是JButton

Credits.addActionListener(new ActionListener() {

        public  void actionPerformed (ActionEvent e){
          Credits.setVisible(false);
          Oracle.setBounds(550,280,500,500);    
          Oracle.setFont(new java.awt.Font("Arial", Font.BOLD, 40));
          Oracle.setForeground(new java.awt.Color(240,240,240));
          Oracle.setText("Credits To:");
          // I want to wait  or pause or sleep  for 5000 milliseconds  
          // Then Change The Icon 
 TimeClassAdd tcAdd = new TimeClassAdd();
    timer = new Timer(1000, tcAdd);
    timer.start();
    timerLabel.setText("IT HAS BEGUN");

  long stopTime = System.currentTimeMillis();
  long elapsedTime = stopTime - startTime;
  while (elaspedTime >= 5000) {
     break;}


 Oracle.setIcon(OraclePNG);


 }});

1 个答案:

答案 0 :(得分:4)

正如javax.swing.Timer int delay = 5000; //milliseconds ActionListener taskPerformer = new ActionListener() { public void actionPerformed(ActionEvent evt) { //...Perform a task... } }; Timer timer = new Timer(delay, taskPerformer); timer.setRepeats(false); timer.start(); 中的示例所示:

{{1}}

提示:如果您不确定某些内容是如何工作的,请使用Java API文档。它可以为您节省很多麻烦。