- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个程序,其中 pushbutton
上的 SelectionEvent
监听器激活一个线程。
在此线程执行期间,按钮需要保持灰色且不可单击(以便不运行相关线程的多个副本),然后返回到正常的可单击状态。
在SWT框架内,我该如何做到这一点?
这是我当前拥有的代码(“ok”是有问题的 SWT 按钮):
ok.addSelectionListener(new SelectionListener() {
public void greyOut() {
ok.setEnabled(false);
}
public void ungray() {
ok.setEnabled(false);
}
public void widgetDefaultSelected(SelectionEvent e) {}
public void widgetSelected(SelectionEvent ef) {
ok.setGrayed(true);
Thread t = new Thread(new Runnable() {
public void run() {
greyOut();
connectAndDownloadReport();
try {
System.setOut(oldOut);
ArrayList<Devices> allDevs = parseFile();
createCSV(allDevs);
}
catch(Exception e) {
e.printStackTrace();
e.getMessage();
System.out.close();
System.exit(0);
}
finally {
ungray();
}
}
});
}});
最佳答案
调用ok.setEnabled(false)
将禁用该按钮,但您必须在 UI 线程中执行此操作。因此,在后台线程中,您必须使用 Display.asyncExec
运行该部分代码:
Display.getDefault().asyncExec(() -> ok.setEnabled(false));
关于Java SWT : How to make a button unclickable while a separate thread is running,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49805758/
我遇到过这个 html: 上面的html和这个有什么区别: 最佳答案 来自MDN page on the tag : 对于 type 的属性标签,可能的值是: 提交:按钮将表单数据提交给服务器
Button button= (Button) findViewbyID(R.id.button); 和 Button button = new Button(this); 有什么区别? 最佳答案 有
我是一名优秀的程序员,十分优秀!