您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何每秒移动jlabel?

如何每秒移动jlabel?

Thread t = new Thread(new Runnable() {
@Override
public void run() {
    //work here
}

}); t.start();//start thread

但是我建议在Timer它上运行一个Swing EDT

根据您的问题,我建议使用Timer创建线程点用于一般知识。

探测是线程未在您的swing GUI的EDT线程上运行,就像Timer这样:

 int delay = 1000; //milliseconds
  ActionListener taskPerformer = new ActionListener() {
      int count=0;
      public void actionPerformed(ActionEvent evt) {
           if(count==10) {//we did the task 10 times
                 ((Timer)evt.getSource()).stop();
            }

            label.setLocation((label.getLocationOnScreen().x+10), label.getLocationOnScreen().y);
            System.out.println(SwingUtilities.isEventDispatchThread());
           count++;
      }
  };
  new Timer(delay, taskPerformer).start();

其他 2022/1/1 18:30:27 有351人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶