2017-05-30 2 views
0

Ich habe einen jinternframe namens screenRole, dieser Frame enthält einige Tabellen, die Informationen aus einer Datenbank laden, es dauert einige Zeit für den internen Rahmen angezeigt werden, weil direkt nach dem Aufruf der setvisible Methode Im auch Aufruf loadtb (which die Verbindung zu den Datenbanken und zieht die Daten) Was ich brauche ist, um den Rahmen zuerst anzuzeigen und danach laden die Tabellen. Es zeigt den Rahmen an, sobald er die Information von den DB's gezogen hat.zeigt jinternframe vor dem Laden der Daten der Jtables darauf

Ich versuchte viele Dinge, um den Rahmen zuerst zu zeigen (all diese // Kommentarzeilen im Code), ohne Erfolg.

Irgendwelche anderen Vorschläge?

RoleEng screenRole;

 screenRole = new RoleEng(); 
     desktop.add(screenRole); 
     screenRole.setVisible(true); 
     //screenRole.show(); 
     // screenRole.setFocusable(true); 
     //desktop.revalidate(); 
     //desktop.repaint(); 
     //JOptionPane.showMessageDialog(null, "Test"); 
     screenRole.loadtb(this.idf,rcode);** 
     //screenRole. (this.idf,rcode); 
+0

Das einzige, was bisher funktioniert hat, ist der showMessageDialog, aber ich möchte nicht, dass ein MessageDialog vor dem internen Frame angezeigt wird, aber zumindest hat es vor dem Laden der Info aus der DB – PCA

+1

erscheinen lassen Kommentare nicht hinzufügen. Veröffentlichen Sie alle relevanten Informationen in der Frage, so dass sie an einem einzigen Ort gefunden werden. – camickr

Antwort

2

können Sie einen SwingWorker verwenden, um die Daten in einem separaten Thread zu laden. Wenn die Daten geladen sind, können Sie die done()-Methode von SwingWorker verwenden, um die Daten in der Tabelle zu aktualisieren.

Lesen Sie den Abschnitt aus dem Swing-Tutorial auf Worker Threads and SwingWorker für weitere Informationen und Arbeitsbeispiele, um loszulegen.

Verwandte Themen