2016-08-26 2 views
2

in der Java-Swing-TableModel, sind wir in der Lage zu feuern Tabelle geändert, hinzugefügt, gelöscht usw. Ich frage mich, wenn diese Methode Aufrufe sind teuer, wenn die Komponente nicht sichtbar ist?TableModel Feuer Methoden teuer, wenn nicht sichtbar

Zum Beispiel, ein anderes Fenster deckt es ab. Oder es ist in einem nicht aktiven Tab.

+0

Können Sie definieren, was Sie mit "teuer" meinen? Ist Ihnen aufgefallen, dass diese Anrufe "teuer" sind, wenn die Komponente sichtbar ist? – copeg

+0

Ich bemerkte, dass die Swing-Anwendung oft in einer Ansicht mit statischem Text lag, während in einer ausgeblendeten Tab-Komponente umfangreiche Tabellenaktualisierungen vorhanden sind. – delita

+0

Können Sie eine [mcve] posten, die diese Verzögerung zeigt? Verzögerungen sind keine typische Beschwerde über eine 'JTable' und sind oft auf Threading-Probleme zurückzuführen (siehe Antwort von @trashgod). – copeg

Antwort

5

Um die Auswirkungen des Brennens eine große Anzahl von Aktualisierungsereignisse zu minimieren, JTablerenderering verwendet die flyweight pattern nur sichtbar Zellen zu machen. Der Ansatz ist umrissen here. Dieser verwandte example Skalen gut in die Tausende von Zeilen, aber Sie sollten profile, um die gewünschte Leistung zu überprüfen.

Ich bemerkte Verzögerung in der Swing-Anwendung oft auf einer Ansicht mit statischem Text, während es schwere Tabellenaktualisierungen in einer ausgeblendeten Registerkarte Komponente gibt.

here Wie gezeigt, verwenden SwingWorker unbestimmbare Latenz zu verwalten.

0

Ich denke, es hängt von der Anwendung selbst ab, wie man auf diese Ereignisse reagiert.

Angenommen, Sie müssen auf der Grundlage dieses Ereignisses einige Hintergrundaufgaben ausführen, die jedoch immer noch nützlich wären.

+0

Angenommen, ich benötige die Hintergrundaufgabe zur Aufzeichnung. Aber ich mache mir mehr Gedanken über die Belastung des EDT-Threads, wo es eine "schmutzige" Region gibt, die neu streichen kann, selbst wenn sie teilweise/vollständig unsichtbar ist. – delita

Verwandte Themen