我的问题如下:我有一个JApplet
嵌入到 HTML 页面和一个form
带有小程序公共方法的 JS 调用的按钮:
<input id="btnAppletSelectFiles" type="button" value="Select Files"
onclick="document.appletExcelUploader.SelectFiles();" />
在我的 JApplet 中,我有 FileChooser,例如:
public class ExcelUploader extends JApplet {
private JFileChooser fc = new JFileChooser();
// Some stuff
}
我正在我的小程序的公共方法中编写这样的代码:
public void SelectFiles() {
int retVal = fc.showOpenDialog(ControlsPanel.this);
if (retVal == JFileChooser.APPROVE_OPTION) {
for (File file : fc.getSelectedFiles()) {
System.out.println(file.getName());
}
}
}
因此,当单击 HTML 按钮时,文件对话框正常显示,我可以浏览目录并检查文件,但我不能按Open或OK按钮 - 我单击它但对话框仍然存在。
我认为我的线程有问题 - 我仍然以某种方式在“HTML 和 JS”线程中执行此操作,而不是在我的小程序的 GUI 线程或事件调度线程中。
如何解决问题?