JTableCellRenderer

  • Hallo Leute,

    ich weiß zu diesem Thema gibt es unglaublich viele Einträge, jedoch hab ich jetzt schon ziemlich viele durch und komme immer noch auf kein Ergebnis.

    Nun zu meinem Problem:

    Ich möchte die Schriftfarbe der Zellen meiner JTable je nach Text ändern. Hierfür habe ich folgenden Code verfasst:

    Code :


    Hier mein Modell:

    Und der Teil des Hauptprogramms der relavant ist:

    Code
    ScoreTableCellRender str = new ScoreTableCellRender();
    TAnzeigeModell2.setValue(ColDate, Values2);
    TAnzeige2.setDefaultRenderer(String.class, str);



    Ich hoffe wirklich, dass ihr mir helfen könnt und bedanke mich schon mal im Vorraus.

    lg
    Morgaine

  • Im TableModel die Methode getColumnClass überschreiben und String.class zurückgeben (sofern nur Strings dargestellt werden sollen, was laut setDefaultRenderer wohl der Fall ist).
    Ansonsten ist der Teil des Hauptprogramms unvollständig, da könnte auch noch die eine oder andere Kleinigkeit falsch sein.

    Meine CellRenderer sehen übrigens meist so aus:

  • Im Hauptprogramm:

    Code
    JTable table = new JTable(new TestTableModel());
    table.setDefaultRenderer(String.class, new TestTableCellRenderer());


    getColumnClass bringt auch nichts? Ich dachte eher, dass dort das Problem liegt.

  • Bezüglich Hauptptogramm, das hab ich schon. Ist nur an einer anderen Stelle. Der Text wird ja richtig angezeigt nur die Formatierung klappt nicht.

    Nein hat nicht funktioniert, dann ist das ganze Programm abgestürzt weil in der Funktion public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) value plötzlich null war.


  • Hallo,

    ich habe das Problem gelöst. Ich fange einfach die NULL Werte in public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) ab und schon funktioniert es.
    Danke für die Tipps.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!