primero tenemos que crear una clase que derive de DefaultTableCellRenderer la cual es la encargada de dar formato a nuestro jtable...
la clase para selleccionar toda una fila es:
import java.awt.Color;
import java.awt.Component;
import javax.swing.JOptionPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
public class MiRender extends DefaultTableCellRenderer
{
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,int row,int column)
{
super.getTableCellRendererComponent (table, value, isSelected, hasFocus, row, column);
if(isSelected)
{
this.setOpaque(true);
this.setBackground(Color.RED);
this.setForeground(Color.BLUE);
}
else
{
this.setOpaque(true);
this.setBackground(Color.WHITE);
this.setForeground(Color.BLACK);
}
// JOptionPane.showMessageDialog(null,"position");
return this;
}
}
Nota:"esta clase selecciona toda la fila si queremos solo un celda es necesario agregar al if un && hasfocus"
ya teniendo la clase definimos el setDefaultRenderer de las tablas en mi caso tengo dos y un metodo que las llena, esto lo puse en el contrutor de mi formulario...
public NewJFrame() {
initComponents();
model= new DefaultTableModel();
model.setColumnIdentifiers(new Object[] {"COLUM1","COLUM2","COLUM3","COLUM4","COLUM5" });
this.FilllTable();
// SELECCIONAR UNA CELDA TABLA UNO
jTable1.setDefaultRenderer (Object.class, new RenderTabla());
jTable1.setSelectionMode( ListSelectionModel.SINGLE_SELECTION);
//SELECCIONA UNA FILA TABLA 2
jTable2.setDefaultRenderer (Object.class, new MiRender());
jTable2.setSelectionMode( ListSelectionModel.SINGLE_SELECTION);
}
DESCARGAR EL CODIGO
viernes, 16 de octubre de 2009
Suscribirse a:
Entradas (Atom)