una tabla reiniciar registro refrescar modificar limpiar inicializar eliminar datos como boton agregar actualizar java swing jtable textfield tablecelleditor

java - tabla - ¿Puedo borrar texto en JTable cuando escriba?



refrescar jtable java (3)

¿Puedo hacer que textField en JTable actúe como una celda en Excel ? Borre el texto al escribir pero puede editar al ingresar a la celda.

Creo que estas 2 operaciones irán al mismo evento. ¿Me equivoco?

Intento usar la keyPressed pero nada funciona. TT-TT

Aquí está mi código

private JTable getTblMaster() { if (tblMasterData == null) { tblMasterData = new JTable() { private static final long serialVersionUID = 1L; public TableCellEditor getCellEditor(int row, int column) { TableColumn tableColumn = getColumnModel() .getColumn(column); TableCellEditor editor = tableColumn.getCellEditor(); try { if (editor == null) { final JTextField text = new JTextField(); /* text.addKeyListener(new java.awt.event.KeyAdapter() { public void keyPressed(KeyEvent e){ } }); SwingUtilities.invokeLater(new Runnable(){ public void run(){ } }); */ editor = new DefaultCellEditor(text); ; return editor; } } catch (Exception e) { LogWriter.error(e); } return editor; } }; } return tblMasterData; }

¿Cualquier sugerencia?


mejor podría ser seleccionar todo el texto en la celda JTable

text.setText(text.getText()) text.selectAll

envolviendo en invokeLater()

gran solución Table Select All Editor by @camickr


Ohh! trashgod. Tu ejemplo me salvó la vida: D

Todo lo que necesitaba era el siguiente código y funcionó. ¡Cuan sencillo! Muchas muchas gracias.

private JTable getTblMaster() { if (tblMasterData == null) { tblMasterData = new JTable() { public boolean editCellAt(int row, int column, EventObject e){ boolean result = super.editCellAt(row, column, e); final Component editor = getEditorComponent(); if (editor == null || !(editor instanceof JTextComponent)) { return result; } if (e instanceof KeyEvent) { ((JTextComponent) editor).selectAll(); } return result; } ....


Lo hice así. Primero estoy usando la clave de evento Relanzada y luego obtengo el número de fila y columna en el que estoy trabajando y luego establezco el valor en esa fila. El código es así.

private void purchases_TBLKeyReleased(java.awt.event.KeyEvent evt) { int rowWorking = purchases_TBL.getSelectedRow(); int columnWorking = purchases_TBL.getSelectedColumn(); if(columnWorking==3){ model.setValueAt(null, rowWorking, columnWorking); } }

Esto hace que la tercera columna de la tabla sea nula tan pronto como enfoque me muevo hacia ese teclado usando.

Nota : El mismo fragmento de código se puede colocar en el evento MouseClicked .