martes, 24 de julio de 2012

JTable con Panel de botones y eventos en java


Hace poco un amigo de facebook tenia problemas de implementar botones en un JTable y a decir verdad esto es un poco complejo hay verias formas de hacerlo una mas compleja que otra en este caso les presento un ejemplo un poco complejo pero entendible.
para añadir Objetos en este caso JButton dentro de una celula o celda de un JTable tenemos que utilizar elmétodo:

 TableColumn column = tabla.getColumnModel().getColumn(1);
/***************AÑADADO LAS CLASES**************************/
column.setCellRenderer(new ButtonsRenderer());
column.setCellEditor(new ButtonsEditor(tabla));


con estos setCellRenderer() y setCellEditor() añado las clases que me permiten añadir los botones y en que columna quiero que se añadan en este caso la columna 1 que es la de la derecha.
la ClaseButtonsEditor contienes los objetos button y los eventos.

      buttons.get(0).addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent e) {
fireEditingStopped();
JOptionPane.showMessageDialog(table, "Vista Previa");
}
});

buttons.get(1).addActionListener(new ActionListener() {
@Override public void actionPerformed(ActionEvent e) {
int row = table.convertRowIndexToModel(table.getEditingRow());
Object o = table.getModel().getValueAt(row, 0);
fireEditingStopped();
JOptionPane.showMessageDialog(table, "EDITAR: "+o);
}
});


los botones estan añadidos en un List o ArrayList de la claseButtonsPanel la cual transfiere todos sus atributos a la claseButtonsEditor , esta forma es compleja de entender pero bastante buena.


DESCARGAR


No hay comentarios:

Publicar un comentario