Wil*_*ill 1 java swing desktop-application jsr296
我正在开发一个java swing桌面应用程序.对话框表单有一个确定和取消按钮.当用户单击确定按钮时,应用程序会执行一些处理.如何在ok按钮上的事件执行完之前阻止用户再次单击ok.此外,我不希望用户能够按下取消按钮,直到确定完成执行.任何帮助将受到高度赞赏.
启用管理是UI逻辑的一个组成部分.动作可以帮助您这样做:
Action action = new AbstractAction("myAction") {
public void actionPerformed(ActionEvent e) {
setEnabled(false);
doPerform();
setEnabled(true);
}
};
button.setAction(action);
Run Code Online (Sandbox Code Playgroud)
注意:长时间运行的任务不能在EDT上执行,所以这只是为了短期,以防止第二次左右点击产生影响
编辑
只是注意到你用jsr296标记了问题,然后它更容易:你可以将表示模型的方法标记为@Action并将其enabled属性绑定到模型的属性
@Action (enabledProperty == "idle")
public void processOk() {
setIdle(false);
doStuff;
setIdle(true);
}
Run Code Online (Sandbox Code Playgroud)
此外,还有支持(备受争议,但可用)的任务:基本上SwingWorker具有细粒度的豆化生命周期支持
| 归档时间: |
|
| 查看次数: |
115 次 |
| 最近记录: |