He creado un JTable con una tabla personalizada rendir y editor de celdas personalizado que da el resultado en la imagenCómo utilizar editor de celda personalizado JTable y procesador de celdas
creé el panel que se muestra en el primeras celdas de tabla usando una clase separada que extendió JPanel. y añadir valores de la tabla como,
tbl.setCellEditor(new customCell());
tbl.getColumnModel().getColumn(0).setCellRenderer(new customCell());
DefaultTableModel dtm = (DefaultTableModel) tbl.getModel();
Vector v = new Vector();
v.add(new Panel());
v.add("Test");
dtm.addRow(v);
v.clear();
v.add(new Panel());
v.add("Test 2");
dtm.addRow(v);
Y esta es mi clase personalizada tabla para crear esta tabla,
class customCell extends DefaultTableModel implements TableCellRenderer, TableCellEditor {
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Panel p = new Panel();
table.setRowHeight(row, p.getHeight());
return p;
}
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
return new Panel();
}
public Object getCellEditorValue() {
return "";
}
public boolean isCellEditable(EventObject anEvent) {
throw new UnsupportedOperationException("Not supported yet.");
}
public boolean shouldSelectCell(EventObject anEvent) {
return true;
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return true;
}
public boolean stopCellEditing() {
return true;
}
public void cancelCellEditing() {
throw new UnsupportedOperationException("Not supported yet.");
}
public void addCellEditorListener(CellEditorListener l) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void removeCellEditorListener(CellEditorListener l) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
Mi problema se piensa que el panel se muestra como que esperaba que no puedo escribir en el campo de texto o casilla de verificación de cambio o haga clic en el botón. por favor dime como resolver esto.
detener la edición pertenece al editor, no al panel. Además, estropear el modelo desde el exterior actionListener es ... discutible ;-) – kleopatra
gracias por la gran captura, por cierto, este código es revisado por su honestidad más de 3 veces, traté de mover y usar Action from JTable made by Rob (Creo que nada mejor, gratis y más simple), no se han producido cambios ni eventos muy similares, – mKorbel
Muchas gracias mKorbel – Harsha