Estoy haciendo un proyecto en swing y tengo un problema a la hora de editar las celdas. Cuando se está editando el contenido en una celda se cambia el tipo de fuente al de defecto y quiero dejarlo com el que tengo yo, para ello creo un CellEditor y se lo asigno a todas las columnas de la tabla, al crearla, pero al editarlas no mantiene este formato.
Tengo una clase para el CellEditor
Código:
public class MyTableCellEditor extends AbstractCellEditor implements TableCellEditor { JComponent component = new JTextField(); public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int rowIndex, int vColIndex) { ((JTextField)component).setText((String)value); ((JTextField)component).setFont(new java.awt.Font("Arial Unicode MS", 0, 16)); return component; }
Al crear la tabla se lo asigno a todas las columnas
Código:
Y para entrar a editar una celda lo hago con:private void crearEditor(){ for (int i = 0; i < tabla.getColumnCount(); i ++) { TableColumn col = tabla.getColumnModel().getColumn(i); col.setCellEditor(new MyTableCellEditor()); } }
Código:
¿Alguna solución?boolean success = tabla.editCellAt(fila, columma); if (success) { boolean toggle = false; boolean extend = false; tabla.changeSelection(fila, columma, toggle, extend); }
Muchas gracias