I'm trying to use a javafx alert in a task schedule in quartz:
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();
}
}
}
calling in my main class:
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 do error:
java.lang.IllegalStateException: Not on FX application thread; currentThread = DefaultQuartzScheduler_Worker-2Executou!