Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo,

ich suche eine möglichst perfomante Lösung für folgende Aufgabe:

Bestimmte Werte sollen mit einer JTable dargestellt werden. Aufbau ist:

Name Wert

also beliebig viele Zeilen, 2 Spalten.

Die Daten sind nach Typen gruppiert. Die veschiedenen Typen stehen zur Laufzeit schon fest und ändern sich auch nicht mehr. Es kommen dann nur noch neue Datenpaare (Name Wert) hinzu, die in unter dem entsprechenden Typ eingruppiert werden. Soll dann so aussehen:

Typ1 | Gesamtzahl

Name | Wert

Name | Wert

Typ2 | Gesamtzahl

Name | Wert

Typ3 | Gesamtzahl

Wenn nun ein neues Datenpaar des Typs1 hinzukommt, sieht das Ganze so aus:

Typ1 | Gesamtzahl

Name | Wert

Name | Wert

Name | Wert

Typ2 | Gesamtzahl

Name | Wert

Typ3 | Gesamtzahl

So, mein Problem ist eigentlich nur die Fettschrift der Typen-Spalten. Bis jetzt hab ich es so gemacht, dass ich einfach den DefaultTableCellRenderer überschrieben habe und bei jedem String prüfe, ob es ein String vom Typ1, Typ2, ... ist. Die Typen liegen in einer HashMap vor, sieht dann also Pseudocodemaessig so aus:

WENN map.containskey(value.toString())

DANN component.setFont(FETT).

Gibt es eine einfachere Möglichkeit die Zelleninhalte dieser Zeilen fett einzufärben?

es gibt components die html unterstützen, ich weiss jetzt grad nicht welche. die JEditorPane z.b. unterstützt dies.

Evtl. kannst du ja mal probieren ob die formatierung mit HTML perfomanter ist.

Auch das JLabel unterstützt HTML-Tags zu Formatierung seines Inhaltes. In dem Fall würde das aber eigentlich wieder aufs selbe Problem hinauslaufen, und meiner Meinung nach auch mehr Arbeit machen.

Was mir dazu nur sonst noch einfällt ist, dass du für jeden Typ eine eigene Tabelle anlegst und die entsprechenden Werte dann in die Tabellen einsortierst. Dann könntest du deine Zeile mit "Type - Gesamtwert" jeweils als Titelzeile einrichten und bräuchtest dir um die Hervorhebung keine Sorgen mehr zu machen.

Ansonsten, was gibt es denn für Probleme mit deiner Methode? So wie sich das liest funktioniert sie doch, oder?

  • Autor

Die Methode funktioniert eigentlich wunderbar (zusätzlich sind noch ein paar Sachen drin, z.B. werden die einzelnen Werte noch sortiert usw.). Aber die GUI frisst im Moment einfach noch zu viele Ressourcen und wir sind grade dabei alles zu überprüfen was sich irgendwie schneller machen lassen würde...

und da ist mir eben aufgefallen dass ja bei jedem Einfügen noch gecheckt wird, ob der Wert fett geschrieben werden soll, obwohl ja nach dem initialisieren sowieso klar ist dass kein fetter String mehr hinzukommt.

Die Möglichkeit mit mehreren Tabellen werd ich mal ausprobieren, danke :)

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.