Por qué este código siguiente no funciona? donde está el problema?
Mi jTable se inició como jTable1;

jTable1.setDefaultRenderer(Object.class,new TableCellRenderer(){

            @Override
            public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
                Component c = (Component) table.getCellRenderer(row, column);
                c.setBackground(row%2==0 ? Color.white : Color.yellow);                        
                return c;
            };

        });

5 Comentarios

  1. 18

    Hace poco, mientras va a través del código fuente de javax.el swing.tabla.DefaultTableCellRenderer, he encontrado la siguiente solución simple que le proporcionan alternativas fila para colorear para todas las tablas de una aplicación.

    En el código, justo después de la configuración predeterminada de la mirada y la sensación inserte el siguiente código:

    UIDefaults defaults = UIManager.getLookAndFeelDefaults();
    if (defaults.get("Table.alternateRowColor") == null)
        defaults.put("Table.alternateRowColor", new Color(240, 240, 240));
    • De hecho, esto funciona y es muy sencillo!!!
    • Hasta que vayas, gracias
    • OK, gracias, he aprendido, que la lectura de la documentación & código fuente en realidad puede ayudar 🙂
    • Nota: celdas personalizado representadores, puede anular el color de fondo.
    • Cómo usar esto? Soy nuevo en netbeans
  2. 4
    jTable1.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {
    
            @Override
            public Component getTableCellRendererComponent(JTable table, 
                    Object value, boolean isSelected, boolean hasFocus,
                    int row, int column) {
                Component c = super.getTableCellRendererComponent(table, 
                    value, isSelected, hasFocus, row, column);
                c.setBackground(row%2==0 ? Color.white : Color.yellow);                        
                return c;
            };
        });

    El principal error es la consulta de la tabla para su procesador. Si usted tiene otra columna de los representadores, usted tiene que resolver allí.

    • Se muestra super.getTableCellRendererComponent símbolo no se encuentra
    • Se ha corregido la respuesta, yo casi siempre uso el DefaultTableCellRenderer, y supervisó que el uso de la interfaz.
  3. 2

    La respuesta Correcta es la siguiente para mí…

    jTable1.setDefaultRenderer(Object.class, new TableCellRenderer(){
                private DefaultTableCellRenderer DEFAULT_RENDERER =  new DefaultTableCellRenderer();
                @Override
                public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
                    Component c = DEFAULT_RENDERER.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
                    if (row%2 == 0){
                        c.setBackground(Color.WHITE);
                    }
                    else {
                        c.setBackground(Color.LIGHT_GRAY);
                    }                        
                    return c;
                }
    
            });
    • funcionó para mí.
  4. 1

    Probar este…. CONSULTE

    JTable table = new JTable(){
        public Component prepareRenderer(TableCellRenderer renderer, int row, int column){
            Component returnComp = super.prepareRenderer(renderer, row, column);
            Color alternateColor = new Color(252,242,206);
            Color whiteColor = Color.WHITE;
            if (!returnComp.getBackground().equals(getSelectionBackground())){
                Color bg = (row % 2 == 0 ? alternateColor : whiteColor);
                returnComp .setBackground(bg);
                bg = null;
            }
            return returnComp;
    };
    • De hecho, esta es una que funciona y es muy sencillo!!
    • Cómo utilizar este código en una clase de java?

Dejar respuesta

Please enter your comment!
Please enter your name here