Search code examples
javaswingjtablequartz-schedulerjobs

Fill in "getCurrentlyExecutingJobs();" in a JTable


Hello i want to ask if it's possible that i fill in the Currently jobs from a Quartz Scheduler into a JTable so i can see them ?

I tried something like this..:

private JTable getJTableTasks() {       
String [] columnNames ={"Task", "Status"};
                Object [][] data = {
    {sched.getSched().getCurrentlyExecutingJobs()},
        };
jTableTasks = new JTable(data, columnNames);

But it doesn't work.

Any solutions ?

Error Message with the line ({sched.getSched().getCurrentlyExecutingJobs()},)

Exception in thread "AWT-EventQueue-0" java.lang.Error: Unresolved compilation problem: Unhandled exception type SchedulerException at taskscheduler.gui.TaskScheduler.getJTableTasks(TaskScheduler.java:294) at taskscheduler.gui.TaskScheduler.getJContentPane(TaskScheduler.java:88) at taskscheduler.gui.TaskScheduler.getJFrame(TaskScheduler.java:68) at taskscheduler.gui.TaskScheduler.access$1(TaskScheduler.java:62) at taskscheduler.gui.TaskScheduler$5.run(TaskScheduler.java:349) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$200(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)


Solution

  • You need to fill up information in 2D array in your case. Code will look something like this -

               Object[][] data = new Object[9][2];
                int i=0;
                List<JobExecutionContext> sf = scheduler.getCurrentlyExecutingJobs();
                for (JobExecutionContext jobExecutionContext : sf) {
    
                    data [i][0] = jobExecutionContext.getScheduler().getSchedulerName();
                    data [i][1] = jobExecutionContext.getJobDetail().getDescription();
                    i++;
                }