Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/05/2007, 20:14
vdpazmino
 
Fecha de Ingreso: mayo-2007
Mensajes: 210
Antigüedad: 17 años
Puntos: 8
Re: Boton En Celda De Tabla

que tal para poder colocar un jbutton en una celda tienes que crear una clase que extienda de DefaultTableCellRenderer ahi te pongo un ejemplo

public class MessageCellRenderer extends DefaultTableCellRenderer{

/**
* Creates a new instance of MessageCellRenderer
*/
public MessageCellRenderer() {
super();
}

public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
String val="";
if((Boolean)value)
{
val = "LEIDO";
setIcon(new ImageIcon(getClass().getResource("/images/messageRead.png")));
}
else
{
val = "NUEVO";
setIcon(new ImageIcon(getClass().getResource("/images/newMessage.png")));
}
JLabel label = (JLabel)super.getTableCellRendererComponent(table, val, isSelected, hasFocus, row, column);
return label;
}

}

lo que hace el codigo anterior es mostrar un icono en la celda en este caso muestra un icono que indica que el mensaje es nuevo o ya se lo ha leido, para poner el boton tienes que sobrescribir el metodo getTableCellRendererComponent() como puedes ver devuelve un component cuando sobrescribas el metodo retorna un jbutton en vez de un label y el button aparecera en la celda de la tabla.

por ultimo para indicar a la tabla que tienes que usar el renderer que crees utilizas esto:
table_messages.getColumnModel().getColumn(0).setCe llRenderer(new MessageCellRenderer());

espero que esto te ayude

salu2