【发布时间】:2019-07-14 12:03:40
【问题描述】:
我正在尝试在石英的任务计划中使用 javafx 警报:
public class ChecarJob implements Job{
private Connection con;
public ChecarJob() {
this.con = new ConnectionFactory().getConnection();
}
public void execute(JobExecutionContext context) throws JobExecutionException {
System.out.println("Executou!");
try {
String verStatus = "SELECT COUNT(*) FROM equipamento_requisicao";
PreparedStatement stmt = con.prepareStatement(verStatus);
ResultSet rsStatus = stmt.executeQuery();
if(rsStatus.next()){
Alerts a = new Alerts();
int Resultado = rsStatus.getInt(1);
if(Resultado>Sessao.getInstancia().getQtdRegistroBD()){
Sessao.getInstancia().setQtdRegistroBD(Resultado);
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("SUCESS");
alert.setHeaderText("SUCESS");
alert.setContentText("SUCESS");
alert.showAndWait();
}
else if(Resultado<Sessao.getInstancia().getQtdRegistroBD()){
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("FAIL");
alert.setHeaderText("FAIL");
alert.setContentText("FAIL");
alert.showAndWait();
Sessao.getInstancia().setQtdRegistroBD(Resultado);
}
else{
//aq não irei fazer nada.
}
}
}catch (Exception e) {
e.printStackTrace();
}
}
}
在我的主课中调用:
public void start(Stage stage) throws Exception {
JobDetail j = JobBuilder.newJob(ChecarJob.class).build();
Trigger t = TriggerBuilder.newTrigger().withIdentity("CroneTrigger")
.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(60).repeatForever()).build();
Scheduler s = StdSchedulerFactory.getDefaultScheduler();
s.start();
s.scheduleJob(j,t);
msg 出错:
java.lang.IllegalStateException:不在 FX 应用程序线程上; currentThread = DefaultQuartzScheduler_Worker-2Executou!
【问题讨论】:
-
我尝试但没有成功 :( 可能与 timertask 没有问题。
-
Platform.runLater(new Runnable() { new Thread() { JobDetail j = JobBuilder.newJob(ChecarJob.class).build(); Trigger t = TriggerBuilder.newTrigger().withIdentity(" CroneTrigger") .withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(60).repeatForever()).build(); 调度程序 s = StdSchedulerFactory.getDefaultScheduler(); s.start(); s.scheduleJob(j,t); }.start(); });
-
可以帮忙吗?
标签: javafx