Ayuda JTable
Publicado por Juanillo (18 intervenciones) el 22/02/2018 02:57:23
Un saludo gente:
Estoy haciendo pruebas con un JTable ( editable ) para luego implementarlas en mi proyecto,la idea es construir un jtable bacìo,
con las cabeceras y una sola linea en blanco y el foco en la primera celda y esta ya estaria en modo ediciòn , ingresariamos datos en esta celda y al pulsar return(validar datos)y pasaria a la celda siguiente,cuando llegara a la ultima celda al pulsar return (validar datos) y añadir una siguiente linea con el foco en la primera celda de esta neva linea y siendo ya editable.
Como podria hacer esto? lo unico que he conseguido y no se si voy bien encaminado,es añadir una fila nueva cuando la ultima celda registra un cambio,que es lo que no quiero si no cuando se pulse return
Si alguien supiera de algun enlaze donde explicara como llevar este tema del jtable y sus eventos,y lo refernte a e este,etc.., gracias
Estoy haciendo pruebas con un JTable ( editable ) para luego implementarlas en mi proyecto,la idea es construir un jtable bacìo,
con las cabeceras y una sola linea en blanco y el foco en la primera celda y esta ya estaria en modo ediciòn , ingresariamos datos en esta celda y al pulsar return(validar datos)y pasaria a la celda siguiente,cuando llegara a la ultima celda al pulsar return (validar datos) y añadir una siguiente linea con el foco en la primera celda de esta neva linea y siendo ya editable.
Como podria hacer esto? lo unico que he conseguido y no se si voy bien encaminado,es añadir una fila nueva cuando la ultima celda registra un cambio,que es lo que no quiero si no cuando se pulse return
Si alguien supiera de algun enlaze donde explicara como llevar este tema del jtable y sus eventos,y lo refernte a e este,etc.., gracias
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package formularios;
import java.awt.BorderLayout;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
public class FramePruebaTabla1 extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private JTable tabla;
private DefaultTableModel dtm;
public FramePruebaTabla1() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout());
setContentPane(contentPane);
tabla=new JTable();
Object[][] fila = {};
String[] columNames ={"Nombre", "Apellido", "Pasatiempo", "Años de Practica", "Soltero(a)"};
dtm=new DefaultTableModel(fila,columNames);
tabla.setModel(dtm);
tabla.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
dtm.addRow(new Object[]{});
tabla.getModel().addTableModelListener(new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
if ((tabla.getSelectedRow()==dtm.getRowCount()-1) && (tabla.getSelectedColumn()==dtm.getColumnCount()-1)){
dtm.addRow(new Object[]{});
tabla.changeSelection(dtm.getRowCount()-1, dtm.getColumnCount()-1, false, false);
}
}
});
JScrollPane scroll = new JScrollPane(tabla);
scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
this.getContentPane().add(scroll, BorderLayout.CENTER);
}
}
Valora esta pregunta
0