JTable Set Zelle Farbe Auf Bestimmten Wert

Ich bin versucht, zu schreiben, eine Methode, die bei gegebenen Parametern (Wert, Farbe) setzt die Farbe auf den hintergrund einer Zelle, die einen Wert hat, der gleich cellValue.

Was meine Methode tatsächlich tut, ist, er setzt die Farbe auf dem hintergrund von Zellen für die ganze Zeile und wenn ich wählen Sie die Zeile in der Tabelle, und ich will die Methode nur Farbe an der bestimmten Spalte (wo cellValue ist gleich Wert) jedes mal, wenn ich die Methode aufrufen kann.

    void setCellBackgroundColor(boolean cellValue, final Color color) {
        List<List<Object>> data = tView.getTTableModel().getData();

        for (int row = 0; row < data.size(); row++) {
            for (int col = 0; col < data.get(row).size(); col++) {
                TableCellRenderer renderer = tView.table.getCellRenderer(row, Col);
                Component component = tView.table.prepareRenderer(renderer, row, col);
                boolean bValue = 
                    TDataTypeRenderer.parseIntoRealValue(
                        data.get(row).get(col)
                    )
                );
                if (bValue == cellValue) {
                    component.setBackground(color);
                }
    }
  • und prepareRenderer ist gute und richtige Möglichkeiten (hat Spalten-und Zeilen-Koordinaten), sondern ist Teil überschreiben JTables Methoden, die nicht zur Schleife in Zeile & Spalten -, Ergebnis-renderer (prepareRenderer) sollte nur eine Instanz, die Schleifen in Sicht, Hinweis prepareRenderer hasst leere JTables Sicht haben, um zu testen, ob Zeilen > 0, bevor der Anruf(en) ist/sind lackiert
InformationsquelleAutor Xerath | 2014-08-01
Schreibe einen Kommentar