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.

JTable-während der Einfügezeit der Zellen in die Table

Empfohlene Antworten

Veröffentlicht

Hallo,

mit der Methode addRow(String[]) füge ich die einzelne Zeilen in die Tabelle.

Jetzt hab ich folgendes vor (Bis jetzt noch ohne Erfolg):

Bover die einzelnen Zellen eingefügt wird, möchte ich noch was machen:

Je nach Inhalt einer Zelle(wird mit String befüllt), bekommt die Zelle eine Hintergrundfarbe.

Jetzt die Frage:

Ich möchte ungern mit TableCellRenderer arbeiten. Das sieht so kompliziert aus und ist bestimmt auch nicht ohne.

Am liebsten(wenn es geht) möchte ich den String per JLabel (oder ähnliches, vielleicht JTextfield) in die Tabelle einfügen. Dann könnte ich ja leicht den Hintergrund der JLabel ändern.

Der Inhalt der Tabelle ist statisch festgelegt.

Könnte ich es so realisieren, wie ich es mir vorstelle?

Habt ihr Vorschläge für mich?

Vielen Dank im Voraus.

Tschüss

Ich möchte ungern mit TableCellRenderer arbeiten. Das sieht so kompliziert aus und ist bestimmt auch nicht ohne.
Da wirst du aber nicht drumherum kommen - es sei denn, du findest eine externe Komponente, die bereits genau das macht, was du willst (dürfte allerdings schwierig werden).

Von daher: Die Angst vor dem TableCellRenderer über Bord werfen und einfach mal drangehen. So schwierig ist es nämlich gar nicht.

Hallo Allerseits,

hab da ein dickes Problem:

ich möchte je nach Inhalt eine Zelle, die Zelle den Hintergrund farbig markieren.

Mein JTable bekommt ein DefaultTableRenderer:

DefaultTableCellRenderer renderer = new ColoredTableCellRenderer();

jTable.setDefaultRenderer ( Object.class, renderer);

Ich benutze ein DefaultTableModel. Mein erstes Versuch sah so aus:
public class ColoredTableCellRenderer extends DefaultTableCellRenderer

{

	public void setValue( Object value)

	{

                    setBackground(Color.RED);

                }

}

Hier setze ich für alle Zellen den Hintergrundfarbe rot.

Jetzt mein erstes Problem: Ich möchte die Objekt-Variable mit der Methode toString() umwandeln. Und denn in einem String zuweisen. Wenn ich dannach Compiliere, geht nichts mehr.

Als Fehlermeldung kommt das da:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException.

Was mache ich falsch?

Object.class in setDefaultRenderer stimmt doch, oder?

Ich möchte den value in String umwandeln. In dem String steckt ein Information, das entscheidet welche Farbe die Zelle haben soll. Deswegen möchte ich den subString verwenden.

Vielen Dank im Voraus.

Tschau

Jetzt mein erstes Problem: Ich möchte die Objekt-Variable mit der Methode toString() umwandeln. Und denn in einem String zuweisen. Wenn ich dannach Compiliere, geht nichts mehr.
Erstmal: Die Fehlerbeschreibung ist mehr als dürftig. Ich glaube zwar zu wissen, was du sagen möchtest, und glaube auch zu wissen woran es liegt aber wirklich sicher bin ich mir nach dem, was du da schreibst nicht. Wenn schon eine Beschreibung als Prosatext ein Problem darstellt, dann kann es mit der Umsetzung auf eine formale Sprache nicht unbedingt besser sein. Von daher bemühe dich doch bitte ein wenig aussagekräftigere und verständliche(re) Problemebeschreibungen zu liefern.

Zurück zum Thema:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException.
Aber höchstwahrscheinlich wird auch noch ein Stacktrace dazu mit ausgegeben, woran du (und wir hier im Forum auch) wunderbar erkennen kannst wo genau der Fehler aufgetreten ist. Posten!

Ich möchte den value in String umwandeln. In dem String steckt ein Information, das entscheidet welche Farbe die Zelle haben soll. Deswegen möchte ich den subString verwenden.
Ich tippe mal darauf, dass 'value' eben null ist und von daher subtring eben die beschriebene NullPointerException wirft. Aber wie oben schon geschrieben: Ohne Stacktrace ist das alles nur wilde Herumraterei.

Hi perdi,

sorry, dass du mein Problem nicht verstanden hast.

Habs aber inzwischen gelöst.

Hab in der Methode "getTableCellRendererComponent" zu Erst super.getTableCellRendererComponent gerufen. Dann könnte ich den Object value mit:

String s = String.valueOf(value);

in einem String umwandeln.

Jetzt klappt es.

Danke.

Mfg

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

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.