我希望GUI在实例化对象之前将按钮的标题从"Go"更改为"Working ..."并实际完成工作.完成后,我希望按钮的标题切换回"Go".
这是代码:
private class convert implements ActionListener {
public void actionPerformed(ActionEvent e) {
JButton button = (JButton)e.getSource();
button.setText("Working...");
button.setEnabled(false);
anObject name = new AnObject();
boolean result = name.methodName(chooser.getSelectedFile(),encoding);
// A bunch of stuff was here but irrelevant to the question,
// so it was removed to save room.
button.setEnabled(true);
button.setText("Go");
}
Run Code Online (Sandbox Code Playgroud)
实际发生的做法是名字被实例化,方法名被调用,然后按钮被更新在屏幕上,尽管我已经告诉VM先更改按钮标题.
我的工作理论是,鉴于我没有使这个程序成为线程,这与操作优先级,或JVM的内部线程或某些东西有关...
有什么建议?
我正在研究一个基本上如下的vba项目:
if workbooks.canCheckOut(filename) = true then
workbooks.CheckOut(filename)
set workbookVariable = workboooks.Open(filename)
else
' Pesudocode: Display error message
' Quit
end if
' Pseudocode: Do some stuff with workbookVariable.
If workbookVariable.saved = false then
workbookVariable.save
end if
If workbookVariable.canCheckIn then
workbookVariable.checkIn
Set workbookVariable = Nothing
else
msgbox "Error message goes here", vbCritical
end if
' Pseudocode: quit
Run Code Online (Sandbox Code Playgroud)
(编辑:我有"如果workbookVariable.Saved = True";这是不正确的.如果文件已经保存,则保存文件没有意义......所以现在更新以反映我真正拥有的内容.)
如果工作簿被修改并保存,一切运行正常.它保存,重新签入SharePoint,程序正常结束.
但是,如果工作簿没有被修改,当它进入程序的部分检查时,excel崩溃,我收到一条错误消息:"自动化错误".
我甚至尝试在命令后输入一个等待checkIn命令,没有运气......
这里发生了什么?有人能指出我正确的方向吗?