Retazo: JTable -> TableCellRenderer

Iniciado por Adalher, Diciembre 16, 2018, 04:31:24 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Ejemplo de un renderizador para alineación del texto, colores, frontera y fuente:

Código: java

public class AlignTableCellRenderer extends DefaultTableCellRenderer.UIResource
{
private DefaultTableCellRenderer renderizador;
private int horizontalAlignment=SwingConstants.CENTER;
private Color foregroundColor=null;
private Color backgroundColor=null;
private Border frontera=null;
private int fontstyle=Font.PLAIN;

public AlignTableCellRenderer(JTable table)
{
renderizador=(DefaultTableCellRenderer)table.getTableH eader().getDefaultRenderer();
}

public AlignTableCellRenderer(JTable table,int horizontalAlignment)
{
this(table);
this.horizontalAlignment=horizontalAlignment;
}

public AlignTableCellRenderer(JTable table,int horizontalAlignment,Color foregroundColor)
{
this(table);
this.horizontalAlignment=horizontalAlignment;
this.foregroundColor=foregroundColor;
}

public AlignTableCellRenderer(JTable table,int horizontalAlignment,int fontstyle,Color foregroundColor)
{
this(table);
this.horizontalAlignment=horizontalAlignment;
this.foregroundColor=foregroundColor;
this.fontstyle=fontstyle;
}

public AlignTableCellRenderer(JTable table,int horizontalAlignment,Border frontera)
{
this(table);
this.horizontalAlignment=horizontalAlignment;
this.frontera=frontera;
}

public AlignTableCellRenderer(JTable table,Border frontera)
{
this(table);
this.frontera=frontera;
}

public void setForegroundColor(Color foregroundColor)
{
this.foregroundColor=foregroundColor;
}

public void setBackgroundColor(Color backgroundColor)
{
this.backgroundColor=backgroundColor;
}

public void setFontstyle(int fontstyle)
{
this.fontstyle=fontstyle;
}

@Override
public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int row,int column)
{
JLabel label=(JLabel)renderizador.getTableCellRendererCompone nt(table,value,isSelected,hasFocus,row,column);
label.setHorizontalAlignment(horizontalAlignment);
label.setFont(label.getFont().deriveFont(fontstyle ));
if(foregroundColor!=null)
{
label.setForeground(foregroundColor);
}
if(backgroundColor!=null)
{
label.setBackground(backgroundColor);
}
if(frontera!=null)
{
label.setBorder(frontera);
}
return label;
}

}


Saludos
Este es el mayor reproche al pueblo hispanohablante:

Que a pesar de su inteligencia y a pesar de su valentía siempre adoran el poder.