gpt4 book ai didi

java - 调用函数时按钮不会禁用

转载 作者:行者123 更新时间:2023-12-02 23:41:36 25 4
gpt4 key购买 nike

我真的迷失了:在这种情况下,单击按钮时按钮应可禁用 (btnStart.setEnable(false))。之后它应该调用位于另一个类中的函数。一切正常,除了 btnStart 不会在单击时禁用,而是在调用函数之后禁用。

所以这个:

@Override
public void actionPerformed(ActionEvent buttonKLick) {
if(buttonKLick.getSource() == this.btnStart){
btnStart.setEnabled(false);
try {
Funktionen.fileFinder(Pfad); //The Function
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}

将调用函数FileFinder然后禁用该按钮,尽管该按钮之前应该被禁用。

最佳答案

您可能遇到了线程问题,您的其他方法需要花费时间并锁定 Swing 事件线程,从而阻止 Swing 正确地将按钮绘制为禁用状态。如果使用后台线程会发生什么?

即,

if(buttonKLick.getSource() == this.btnStart){
btnStart.setEnabled(false);
new Thread(new Runnable() {
public void run() {
try {
Funktionen.fileFinder(Pfad); //The Function
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}).start();
}
<小时/>

编辑:

请务必阅读:Lesson: Concurrency in Swing .

关于java - 调用函数时按钮不会禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20300640/

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