gpt4 book ai didi

java - 如何在 setBounds 的情况下暂停进程

转载 作者:行者123 更新时间:2023-12-01 10:33:09 26 4
gpt4 key购买 nike

我想在按下按钮时显示标签的移动一段时间。请帮忙。只需告诉我如何在更改 setBounds 期间暂停进程一段时间,在本例中 sleep 方法暂停进程,但仅执行最后一个 setBound 语句:

void ActionPerformed(..){
Thread b = new Thread();

try{
label.setBounds(100,150,70,70);

b.sleep(1000);
label.setBounds(100,200,70,70);

b.sleep(1000);
label.setBounds(100,150,70,70);

}catch(InterruptedException e){
e.printStackTrace();
}
}

最佳答案

阅读swing concurrency tutorial 。经验法则:

  • 您不能在事件调度线程中 hibernate ,因为它会卡住 UI
  • 您不能在事件调度线程之外的线程中访问 swing 组件

因此,您需要一个单独的线程来 hibernate ,然后要求 EDT 修改标签的边界。

使用 swing 计时器,或从后台线程调用 SwingUtilities.invokeLater(),以便由 EDT 完成修改标签边界的任务。

另外,请注意 sleep() 是一个静态方法。应该使用 Thread.sleep() 调用它,而不是 b.sleep()。

关于java - 如何在 setBounds 的情况下暂停进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34966131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com