【问题标题】:Change jLabel visibility immediately when jButton action performed [duplicate]执行 jButton 操作时立即更改 jLabel 可见性[重复]
【发布时间】:2015-04-21 12:58:47
【问题描述】:

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

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

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

问题是我想在这个方法中进行一些非常密集的计算,但同​​时呈现一些gif。 为什么 jLabel 可见性仅在函数结束时更改,我该如何解决?

谢谢! :)

【问题讨论】:

    标签: java netbeans jbutton action jlabel


    【解决方案1】:

    这是因为您应该在 EDT 线程(Event Dispatch Thread)中设置组件的属性。 试试:

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

    或在 Java 8 中使用 Lambda

    EventQueue.invokeLater(() -> LoaderLabel.setVisible(true));
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 2010-09-10
    • 1970-01-01
    相关资源
    最近更新 更多