Problema con un listener
Publicado por javier (3 intervenciones) el 02/03/2020 12:07:05
Hola, primero de todo disculpad todos los errores que hayan, es la primera vez que programo y seguro que hay errores grabe.
Tengo un buscador donde ponen un nombre, hago una búsqueda en la base de datos y si encuentro un resultado lo muestro y si encuentra más de uno vuelco todo en una tabla
La idea es que al clicar sobre uno de las filas de la tabla me devuelva el id, para ello he usado el listener pero el problema está que el programa no espera a que se clique sobre una de las filas, y el valor del id es null
hay alguna forma de que el programa espere hasta que el usuario selecciona una fila de la tabla?
Tengo un buscador donde ponen un nombre, hago una búsqueda en la base de datos y si encuentro un resultado lo muestro y si encuentra más de uno vuelco todo en una tabla
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
private void imprimir_resultado_empleado( ResultSet datos)throws SQLException
{
int filas = 0;
Principal app = Principal.principal();
if (datos.last())
{
filas = datos.getRow();
datos.beforeFirst();
}
if (filas == 1)
{
datos.next();
app.EmpID.setText(datos.getString("id"));
app.EmpNombre.setText(datos.getString("Empleado"));
app.EmpSucursal.setText(datos.getString("Sucursal"));
}
else if (filas == 0)
{
JFrame frame = new JFrame("JOptionPane showMessageDialog");
JOptionPane.showMessageDialog( frame, "No existen conincidencias para esta consulta.\n", "AVISO",
JOptionPane.INFORMATION_MESSAGE);
}
else
{
Tabla listado_empleados = new Tabla(datos);
String id = listado_empleados.getId();
System.out.println(id); // al ejecutar esto da null y tendría que ser el id seleccionado
}
}
La idea es que al clicar sobre uno de las filas de la tabla me devuelva el id, para ello he usado el listener pero el problema está que el programa no espera a que se clique sobre una de las filas, y el valor del id es null
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
public class Tabla extends javax.swing.JFrame {
private ResultSet datos;
private DefaultTableModel modelo;
private JTable tabla;
private String id;
public Tabla(ResultSet listadoUsuarios) throws SQLException {
datos = listadoUsuarios;
modelo = new DefaultTableModel();
initComponents();
config_columnas();
rellena_filas();
mostrar_tabla();
listener();
}
private void listener() {
tabla.getSelectionModel().addListSelectionListener(new ListSelectionListener()
{
public void valueChanged(ListSelectionEvent event)
{
id = tabla.getValueAt(tabla.getSelectedRow(), 0).toString();
dispose();
}
});
}
public String getId (){ return id;}
hay alguna forma de que el programa espere hasta que el usuario selecciona una fila de la tabla?
Valora esta pregunta


0