执行jButton操作时立即更改jLabel可见性

时间:2015-04-21 12:58:48

标签: java netbeans jbutton action jlabel

我正在使用NetBeans IDE,当我尝试将jLabel可见性更改为true时,我遇到了一些问题:

private void buttonActionPerformed(java.awt.event.ActionEvent evt)
{
   LoaderLabel.setVisible(true);
   try { sleep(1000000); } catch { ... }
}

只有在长时间睡眠后才能改变能见度......

问题是我想在这个方法中做一些非常密集的计算,但同​​时提出了一些gif。 为什么仅在函数末尾更改jLabel可见性以及如何修复它?

谢谢! :)

1 个答案:

答案 0 :(得分:1)

这是因为您应该在EDT线程(事件调度线程)中设置组件的属性。 尝试:

EventQueue.invokeLater(new Runnable() {
  @Override
  public void run() {
    LoaderLabel.setVisible(true);
  }
});

或在Java 8中使用Lambda

EventQueue.invokeLater(() -> LoaderLabel.setVisible(true));
相关问题