Ich erstelle eine Anwendung in Java, die einige Informationen aus einer MySQL-Datenbank abruft und sie dann in einer JTable auf dem Bildschirm anzeigt.Result Set wird nicht immer in der JTable angezeigt
Der Code, den ich verwende, um die Informationen in ein DefaultListModel <> zu bekommen und zu setzen, wird unten gezeigt. Das DefaultListModel <> wird dann der JTable zugeführt, die die Informationen auf dem Bildschirm anzeigt.
Das Problem, das ich habe, ist, dass manchmal die Informationen auf dem Bildschirm angezeigt werden und manchmal ist es nicht. Da es keine Änderung in der verwendeten Abfrage gibt, gehe ich davon aus, dass es etwas mit der MySQL-Verbindung zu tun hat.
Die JTable und MenuOptions sind Setup wie dieses
menuOptions = new DefaultListModel<>();
menuOptions.addElement("");
menuList = new JList<>(menuOptions);
menuList.setFont(new Font("Myriad Hebrew", Font.PLAIN, 32));
menuList.setBackground(Color.decode("#005952"));
menuList.setForeground(Color.decode("#BEC423"));
menuList.setSelectionBackground(Color.decode("#660033"));
menuList.setSelectionForeground(Color.decode("#FFFFFF"));
So ist die Frage, die ich frage mich, wie kann ich sicherstellen, dass die Informationen immer auf dem Bildschirm angezeigt wird. Ein Bild davon, wann es angezeigt wird und nicht angezeigt wird, wird unten angezeigt.
Angezeigt:
nicht angezeigt:
Ein letzter Punkt die Informationen zu erhalten, zu zeigen, dass ich auf Wieder Ausführung des Codes zu halten, bis es schließlich gezeigt.
Jede Hilfe wird sehr geschätzt.
1. alles innerhalb 'doInBackground()' ist außerhalb von 'EDT', Sie müssen die GUI in' publish() '--->' process() ',' setProcess() 'oder' done() benachrichtigen ', 2.' JTable'! = 'DefaultListModel' 3. um' DefaultListModel' zurückzusetzen, führe 'SwingWorker' aus, wobei 'publish() ---> process()', 'setProcess()' oder 'done() 'um' 'DefaultListModel'', ein neues' Item' hinzuzufügen, nichts esle (klar für mich) zu Ihrem Code oder Beschreibung – mKorbel
@mKorbel 1) Für den Rest der Anwendung haben Änderungen an der GUI von 'doInBackground()' funktioniert. 2) Ich weiß, dass 'DefaultListMenu' die' JTable' mit den Informationen versorgt. Wenn das Problem liegt, weil ich den Code in der 'doInBackground()' Funktion ändern, dann bin ich verwirrt, warum es manchmal funktioniert und manchmal nicht. – thomasjcf21
Es kann manchmal funktionieren, aber es ist nicht zuverlässig; mehr [hier] (http://stackoverflow.com/a/7158505/230513) und [hier] (http://stackoverflow.com/a/38499763/230513). – trashgod