Enfa Geschrieben 17. Dezember 2006 Geschrieben 17. Dezember 2006 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 Zitieren
perdian Geschrieben 18. Dezember 2006 Geschrieben 18. Dezember 2006 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. Zitieren
Enfa Geschrieben 19. Dezember 2006 Autor Geschrieben 19. Dezember 2006 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 Zitieren
perdian Geschrieben 19. Dezember 2006 Geschrieben 19. Dezember 2006 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. Zitieren
Enfa Geschrieben 20. Dezember 2006 Autor Geschrieben 20. Dezember 2006 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 Zitieren
Empfohlene Beiträge
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.