我打算让用户按一个按钮,执行以下步骤:
jTextField
); 实际发生的事情:
尝试解决问题的解决方案:
我尝试在第一个和第二个动作之间添加时间延迟(TimeUnit.SECONDS.sleep(1);
),结果是一样的。
已实施的代码如下:
private void jButton33ActionPerformed(java.awt.event.ActionEvent evt){
add_to_log("function fitting in progress...");
FunctionFitter3step FF3step = new FunctionFitter3step(/*variables for the constructor, which does all the heavy calculations*/);
add_to_log("function fitting complete!");
}
void add_to_log (String input_string){
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("HH:mm:ss");
LocalDateTime now = LocalDateTime.now();
this.log_string = this.log_string + " [" + dtf.format(now) + "] " + input_string + "\n";
This.jTextField_program_log.setText(this.log_string);
}
答案 0 :(得分:1)
您的FunctionFitter3step
显然是异步运行的。你需要使用某种回调。这是一种方式:
Runnable
参数添加到FunctionFitter3step
Runnable
FunctionFitter3step
代码调用runnable.run()
作为最后一步假设Java 8:
FunctionFitter3step FF3step = new FunctionFitter3step(/*variables*/, () -> add_to_log("function fitting complete!"));