gpt4 book ai didi

java - 在 Java GUI 中使用线程计数

转载 作者:行者123 更新时间:2023-11-29 03:54:51 24 4
gpt4 key购买 nike

所以在我的这部分代码中,我主要是想告诉 GUI 禁用按钮并在没有线程运行时弹出一个弹出窗口(即调用的方法已完成)。

public void actionPerformed(ActionEvent event) 
{
String command = event.getActionCommand();

//If btnConvertDocuments is clicked, the FileConverter method is called and the button is then disabled [so as to prevent duplicates].
if (command.equals("w"))
{
new Thread(new Runnable()
{
public void run()
{
FileConverter fc = new FileConverter();

}
}).start();
if (Thread.activeCount() == 0)
{
btnConvertDocuments.setEnabled(false);
//Validation message ensuring completion of the step.
JOptionPane.showMessageDialog(this, "Step 1 Complete!", "Validation", JOptionPane.INFORMATION_MESSAGE);
}
}

为什么 if (Thread.activeCount() == 0) 似乎永远不会被调用?这不是我为了实现目标而想做的吗?预先感谢您的任何意见!

最佳答案

运行Java程序的时候有很多线程在运行(比如主线程:)看here ) 如果你想检查一个线程的状态,使用 getState()方法(只记得将线程分配给 Thread 变量:

        Thread t = new Thread(new Runnable() 
{
public void run()
{
FileConverter fc = new FileConverter();

}
});
t.start();
if (t.getState().equals(Thread.State.TERMINATED) ) { ... }

深入研究您的问题,您可以调用 join方法,因为它将阻塞当前线程,直到 t 完成(或直到超时)。

关于java - 在 Java GUI 中使用线程计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6919258/

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