例如button按下的事件响应代码是for(i=0;i<100;i++){
td1.setText(Integer.toString(i));
td1.
}
td1是一个jtextfield
先是结果直接就是99,怎么样才能按下按键后在textfield中从1-99逐次显示呢?江湖救急,请务必回答这个问题,小弟水平极差,在这里现谢谢了

解决方案 »

  1.   

    Java Swing的事件处理时单线程的,这是问题的症结所在。
      

  2.   

    所以,你首先需要掌握线程编程的知识(希望你已经掌握了)。然后,你要把事件处理放在一个线程里,也就是说,每一次值的变化,都应该由相应的(线程)类进行处理。
    如果还是不很明白,可以参照Java Applet动画的程序。
    最后,建议有时间的话,看看《Java Pitfalls》、《More Java Pitfalls》之类的书。
      

  3.   

    可用Timer()实现.
    如:
    class test implments ActionListener
    {
      Timer timer;
      int i;
      public test()
      {
         timer=new Timer(500,this); //每过0.5秒执行一次动作事件
         timer.start(); //也可写个条件来启动
      }  public void actionPerformed(ActionEvent e)
      {
         td1.setText(Integer.toString(i)); //这是你说的td1文本框
         i++;
         if (i>99)
            timer.stop();
      }
    }当然也可用线程实现,
    使用sleep(500)来使线程停留0.5秒.
      

  4.   

    for(i=0;i<100;i++){
        td1.setText(Integer.toString(i));
        //0.5s
        Thread.sleep(500); 
    }
      

  5.   

    执行时间太快了,界面上根本看不到从1到99的变化,在每个数字更新之后等待一段时间:
    for(i=0;i<100;i++){
        td1.setText(Integer.toString(i));
        Thread.sleep(500); 
    }