我想在java中执行一个函数,但同时我想在操作开始时和用户结束时向用户显示JOptionPane
,问题是如果我不按“接受”第一个JOptionPane
的买卖,我的功能没有启动,我希望它是自动的,我该怎么做?这是我的代码,我正在使用JRI接口来实现我的功能。
JOptionPane.showMessageDialog(null, "Leyendo archivos, espere un momento...","Importar archivos cel", JOptionPane.INFORMATION_MESSAGE);
REXP data = re.eval("rawdata <- read.celfiles(celFiles)");
JOptionPane.showMessageDialog(null, "Se han importado las muestras exitosamente.", "Importar archivos cel",JOptionPane.INFORMATION_MESSAGE);
答案 0 :(得分:0)
使用ExecutorService
,我相信如果理解它应该更容易实现。
例如,
REXP data;
try {
ExecutorService newCachedThreadPool = Executors.newCachedThreadPool();
Future<REXP> submit = newCachedThreadPool.submit(new Callable<REXP>() {
@Override
public Object call() throws Exception {
return re.eval("rawdata <- read.celfiles(celFiles)");
}
});
data = submit.get();
} catch (InterruptedException | ExecutionException ex) {
System.err.println(ex.getMessage);
}
JOptionPane.showMessageDialog(null, "Leyendo archivos, espere un momento...", "Importar archivos cel", JOptionPane.INFORMATION_MESSAGE);
JOptionPane.showMessageDialog(null, "Se han importado las muestras exitosamente.", "Importar archivos cel", JOptionPane.INFORMATION_MESSAGE);
为方便起见,您可以使用其他重载方法。见documentation