Zum Inhalt springen

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


Empfohlene Beiträge

Geschrieben

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

Geschrieben
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.

Geschrieben

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

Geschrieben
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.
Geschrieben

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

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...