tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
257
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    hesk hesk ist offline Mitglied Gold
    Registriert seit
    Oct 2007
    Beiträge
    192
    Hallo!

    Ich möchte einige Zeilen in meiner JTable umgestalten.
    Hierfür hab ich einen eigenen TableCellRenderer gemacht und ihn der Table zugewiesen.

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    public class ArtkelTableCellRenderer extends DefaultTableCellRenderer 
    {
        private static final long serialVersionUID = 7979571000106387348L;
     
        @Override
        public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column )
        {
            Component cell = super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column );
            
            if( !((ArtikelTableModel)table.getModel()).isAktiv( row ))
            {
                System.out.println("asked row " + row);
                cell.setBackground( Color.red );
            }
            else
            {
                return super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column );
            }
            
            return cell;
        }
    }

    Leider wird nun die ganze Tabelle mit background=red gemacht.

    Wie kann ich mir quasi die default TableCellRendererComponent holen?
     

  2. #2
    hesk hesk ist offline Mitglied Gold
    Registriert seit
    Oct 2007
    Beiträge
    192
    Gerade gelöst( fürL&F Nimbus )

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    if( !((ArtikelTableModel)table.getModel()).isAktiv( row ))
            {
                cell.setBackground( Color.red );
            }
            else
            {
                if( isSelected )
                {
                    cell.setBackground( new Color(57,105,138) );
                }
                else
                {
                    cell.setBackground( null );
                }
            }
     

  3. #3
    hesk hesk ist offline Mitglied Gold
    Registriert seit
    Oct 2007
    Beiträge
    192
    Hm, jetzt bin ich auf ein anderes Problem gestoßen:

    In der Funktion

    Code java:
    1
    2
    3
    
    @Override
        public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column )
        {

    bekomme ich int row übergeben.
    Dies ist aber nicht die absolute Row(ohne filter) sondern jene, wo die Reihe steht.

    Kann man irgendwie rausfinden welche Row es in dem gesamten Model(ohne filter) ist?
     

  4. #4
    hesk hesk ist offline Mitglied Gold
    Registriert seit
    Oct 2007
    Beiträge
    192
    Die Funktion nach welcher ich gesucht habe:

    Code java:
    1
    
    table.convertRowIndexToModel(row)

    Die korrekte Funktion:

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    @Override
        public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column )
        {
            Component cell = super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column );
            
            if( !((ArtikelTableModel)table.getModel()).isAktiv( table.convertRowIndexToModel(row) ))
            {
                cell.setFont( new Font("SansSerif", Font.ITALIC, 12) );
                cell.setForeground( Color.red );
            }
            else
            {
                cell.setFont( new Font("SansSerif", Font.PLAIN, 12) );
                cell.setForeground( Color.black );
            }
            
            return cell;
        }
     

Ähnliche Themen

  1. C# WrapMode nur für bestimmte DGV Zeilen
    Von Pennpann im Forum .NET Datenverwaltung
    Antworten: 0
    Letzter Beitrag: 25.05.11, 16:26
  2. JComboBox-Zeilen in JTable
    Von KPMAnakha im Forum Java
    Antworten: 0
    Letzter Beitrag: 02.11.09, 11:49
  3. JTable: bestimmte Zeilen ändern
    Von anfer im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 8
    Letzter Beitrag: 21.06.07, 15:28
  4. Bestimmte Zeilen auslesen
    Von pycak im Forum PHP
    Antworten: 5
    Letzter Beitrag: 07.02.05, 22:39
  5. Nur bestimmte Zeilen auslesen
    Von rikro im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 30.07.04, 14:09