JSlider 问题, 重画时界面问题

hyg_as 2004-09-01 02:17:26
class PlayListener
implements ActionListener
{
/**
* actionPerformed
*
* @param e ActionEvent
*/
public void actionPerformed(ActionEvent e)
{
log.debug("Play");
try
{
doVedio(lsc.sendMessage(LscGenerator.genLscPlay(new DsmccByte4( (short) 1),
new NormalPlayTime( (long) video.getMinimum()),
new NormalPlayTime( (long) video.getMaximum()),
new
Scale(video.getScale(),
video.getScale()))));
}
catch (Exception ex1)
{
logModel.addElement("server not deal with the action success" + ex1);
}
for (int i = 0; i < video.getMaximum(); )
{
try
{
Thread.currentThread().sleep(10000);
}
catch (InterruptedException ex)
{
log.equals(ex);
}
video.setValue(video.getCurrentNPT());
i=i+video.getScale();
video.repaint();
video.invalidate();
}

}
}

video就是JSlider,这样循环操作时,每一次的循环后的重画希望得到结果时那个滑头倒了下一个位置,能够看到,但是现在只有循环结束才看的倒,过程中整个界面时白色的,看补清楚,请问怎么解决这个问题,或者说什么方法可以让JSlider自己滑动,并且滑动看的清楚
...全文
132 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hyg_as 2004-09-01
  • 打赏
  • 举报
回复
抱歉,其实是个线程的问题了, Thread vvv = new Thread() {
public void run() {
for (int i = 0; i <= video.getMaximum(); )
{
try
{
this.sleep(1000);
}
catch (InterruptedException ex)
{
log.equals(ex);
}
// video.setValue(i);
i = i + video.getScale();
}

}
};

vvv.run();这个是在一个按钮的事件里调用,整个界面就灰了,看不到了
hyg_as 2004-09-01
  • 打赏
  • 举报
回复
怎么解决, for (int i = 0; i < video.getMaximum(); )
{
try
{
Thread.currentThread().sleep(10000);
}
catch (InterruptedException ex)
{
log.equals(ex);
}
video.setValue(video.getCurrentNPT());
i=i+video.getScale();
video.repaint();
video.invalidate();
}

这段写在线程里也是一样的结果,兄弟明示先:)
hyg_as 2004-09-01
  • 打赏
  • 举报
回复
那位给解答一下啊,楼上的兄弟也是作java ,用swing吗?
flywind63 2004-09-01
  • 打赏
  • 举报
回复
用线程解决!
zhushizu 2004-09-01
  • 打赏
  • 举报
回复
是呀,我也是想了好久。。关注中。。。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧