Java 落体字没有给出预期的结果

Java 落体字没有给出预期的结果,java,swing,user-interface,Java,Swing,User Interface,我试图使这个GUI中有这些从屏幕顶部掉下来的单词,我的构造函数中有以下代码,单词每100毫秒移动一个单位。但是,当我运行该程序时,该单词在我启动时出现在400,而不是屏幕顶部。我想有一个特定的方法可以连续更新我的y值?谢谢 while(y <= 400){ y++; repaint(); try { TimeUnit.MILLISECONDS.sleep(100); } catch (InterruptedExcepti

我试图使这个GUI中有这些从屏幕顶部掉下来的单词,我的构造函数中有以下代码,单词每100毫秒移动一个单位。但是,当我运行该程序时,该单词在我启动时出现在400,而不是屏幕顶部。我想有一个特定的方法可以连续更新我的y值?谢谢

while(y <= 400){
      y++;
      repaint();
      try {
          TimeUnit.MILLISECONDS.sleep(100);
      }  catch (InterruptedException ex) {
          Logger.getLogger(Painting.class.getName()).log(Level.SEVERE, null, ex);
      }
}

while(y休眠线程不是获得所需结果的最佳实践,请改用:


y
的起始值是多少?你的代码片段中缺少了这个值。我从y=20开始,它有点任意性。不要在EDT上睡觉;一定要看到和。
    Timer timer = new Timer(100, new ActionListener() { //100 is the delay time between each interval
        @Override
        public void actionPerformed(ActionEvent e) {
            repaint();
            y ++;
            if (y > 400) {
                ((Timer) e.getSource()).stop();
            }
        }
    });
    timer.start();