Article View: es.comp.lenguajes.java
Article #1025Re: JTable poner color a una fila por defecto
From: Pedro
Date: Tue, 26 Sep 2006 07:58
Date: Tue, 26 Sep 2006 07:58
108 lines
4278 bytes
4278 bytes
O.Reyes escribi�:
> Pedro wrote:
>
>>Hola
>>
>>Como pregunta el asunto como puede especificar en funci�n de los datos
>>que tenga en un JTable un color para un fila este seleccionada o no ?
>>
>>Gracias y Saludos
>
>
> Puedes especificar una clase que herede por ejemplo de un JLabel e implemente la
> interfaz TableCellRenderer, despu�s solo tienes que tomar la decisi�n del color
> que quieres poner seg�n los datos que tenga la celda, te lo pongo en un trozo de
> c�digo:
>
>
> public abstract class JLabelRenderer
> extends JLabel
> implements TableCellRenderer{
>
> /** Contructor */
> public JLabelRenderer() {
> super();
> setHorizontalAlignment(SwingConstants.CENTER);
> }
>
> public Component getTableCellRendererComponent(JTable table, Object value,
> boolean isSelected, boolean hasFocus, int row, int column) {
> if (isSelected) {
> /* Para celdas seleccionadas:
> seg�n el valor de 'value', pones el color, el tipo de letra,
> el formato, o incluso el tooltip.
> */
> setForeground(table.getSelectionForeground());
> setBackground(table.getSelectionBackground());
> } else {
> /* Para celdas no seleccionadas:
> seg�n el valor de 'value', pones el color, el tipo de letra,
> el formato, o incluso el tooltip.
> */
> setForeground(table.getForeground());
> setBackground(table.getBackground());
> }
>
> setText(value);
> return this;
> }
> }
>
> luego se lo pones a la columna que quieras en la tabla:
>
> tabla.getColumnModel().getColumn(x).setCellRenderer(elRender);
>
> o algo as�, lo puedes mirar en el API..
ayer por la noche ya estaba probando con algo parecido
class EvenOddRenderer implements TableCellRenderer {
public static final DefaultTableCellRenderer DEFAULT_RENDERER = new
DefaultTableCellRenderer();
public Component getTableCellRendererComponent(JTable table, Object
value,
boolean isSelected, boolean hasFocus, int row, int column) {
Component renderer = DEFAULT_RENDERER.getTableCellRendererComponent(
table, value, isSelected, hasFocus, row, column);
((JLabel) renderer).setOpaque(true);
Color foreground, background;
//System.out.println(""renderer.getBackground());
if (isSelected) {
foreground = Color.WHITE;
background = new Color(10,36,106);
} else { //direccion facturaci�n por defecto
if (row % 2 == 0) {
foreground = Color.blue;
background = Color.white;
} else {
foreground = Color.white;
background = Color.blue;
}
}
renderer.setForeground(foreground);
renderer.setBackground(background);
// if(isSelected) {
// renderer.setBackground(Color.BLUE);
// }
//
// if (row == 1) {
// renderer.setBackground(new Color(234,212,12));
// }
// else {
// renderer.setBackground( new Color(255,255,255));
// renderer.setForeground(Color.BLACK);
// }
return renderer;
}
probare tu c�digo y utilizare el que vea + comodo de utilizar
Gracias y Saludos
Technical Details
Message-ID:
<efamhb$h6f231@cesio.mundo-r.com>Path:
arc1-ca.pugleaf.net!g2news2.google.com!news3.google.com!news2.volia.net!newsfeed01.sul.t-online.de!newsfeed00.sul.t-online.de!t-online.de!news1.dtag.de!cesio.mundo-r.com!not-for-mailReferences:
<ef9060$h6f138@cesio.mundo-r.com> <ef9g0c$5hs$1@hefestos.uned.es>Show Full Headers
Complete Article Headers
X-Google-Thread: 1116f3,1ca1a23a18541932 X-Google-Attributes: gid1116f3,public X-Google-Language: SPANISH,CP1252 Path: arc1-ca.pugleaf.net!g2news2.google.com!news3.google.com!news2.volia.net!newsfeed01.sul.t-online.de!newsfeed00.sul.t-online.de!t-online.de!news1.dtag.de!cesio.mundo-r.com!not-for-mail From: Pedro <Pedro@ddd.com> Newsgroups: es.comp.lenguajes.java Subject: Re: JTable poner color a una fila por defecto Date: Tue, 26 Sep 2006 09:58:42 +0200 Organization: R Cable y Telecomunicaciones Lines: 108 Message-ID: <efamhb$h6f231@cesio.mundo-r.com> References: <ef9060$h6f138@cesio.mundo-r.com> <ef9g0c$5hs$1@hefestos.uned.es> Reply-To: Pedro@ddd.com NNTP-Posting-Host: cm115140.red83-165.mundo-r.com Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.7.12) Gecko/20050915 X-Accept-Language: es, es-es, en-us, en In-Reply-To: <ef9g0c$5hs$1@hefestos.uned.es>