Java - Problema con getSelectedItem

   
Vista:

Problema con getSelectedItem

Publicado por Jose (3 intervenciones) el 24/03/2017 14:31:42
He creado un pequeño programa el cual al inicializarse carga una una tabla de una base de datos llamada 0 en un JComboBox. Esta tabla contiene nombres de bases de datos llamados 1, 2 y 3.
Lo que yo quiero es que al seleccionar uno de estos Item obtenga este dato y lo pase mediante una variable a una consulta SQL a traves de la variable dbName, la cual dependiendo del dato seleccionado ejecute la consulta en la base de datos 1, 2 ó 3.

Estoy utilizando el modelo-vista-controlador.

He conseguido que se cargue la base de datos 0 y que realice la consulta si utilizo en vez de una variable, directamente el nombre de la base de datos 1, 2 ó 3.

Utilizo esta sentencia para conectar y sé que el problema está en la variable dbName.
Connection accesoBBDD=miConexion.dameConexion(dbName);

No consigo pasar el String obtenido al seleccionar el Item de JComboBox

Las clases que utilizo son las siguientes:

package modelo;

import java.sql.*;
import javax.swing.JOptionPane;

public class ModeloConsultasMatricula {
public ModeloConsultasMatricula() {
miConexion1=new Conexion();

} //Fin del constructor ModeloConsultasMatricula


public String getEjercicioSeleccionado (String ejercicio){

return ejercicio;
}

public ResultSet filtraMatricula(String matricula){


Connection accesoBBDD=miConexion1.dameConexion1(dbName1);

rsFiltraMatricula=null;

try{
if(!matricula.equals("")){
psEnviaConsulta=accesoBBDD.prepareStatement(consultaMatricula);
psEnviaConsulta.setString(1, matricula);
rsFiltraMatricula=psEnviaConsulta.executeQuery();
}else{
JOptionPane.showMessageDialog(null, "Debes escribir un texto en el campo Matrícula");
}

}catch(Exception e){
System.out.println("No se ha podido ejecutar el ResulSet filtraBBDD clase EjecutaConsultasMatriculas");
e.printStackTrace();
}
return rsFiltraMatricula;
}

private final Conexion miConexion1;
private ResultSet rsFiltraMatricula;
private PreparedStatement psEnviaConsulta;
private String consultaMatricula=
"SELECT clientes.CODIGO, clientes.NOMBRE, c_albven.FECHA, c_albven.NUMERO, multica2.VALOR"
+ " FROM multica2"
+ " JOIN c_albven ON multica2.NUMERO=c_albven.NUMERO"
+ " JOIN clientes ON c_albven.CLIENTE=clientes.CODIGO"
+ " WHERE multica2.VALOR = ?";
private String dbName1;
//ModeloSeleccionaEjercicio objSeleccionaEjercicio=new ModeloSeleccionaEjercicio();

} //Fin de la clase ModeloConsultasMatricula


package controlador;

import modelo.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.table.DefaultTableModel;
import vista.*;


public class ControladorConsultasMatricula implements ActionListener{
public ControladorConsultasMatricula(BusquedaMatriculas elmarco) {
this.elmarco=elmarco;
} //Fin del constructor ControladorConsultasMatricula


@Override
public void actionPerformed(ActionEvent e) {

ejercicioSeleccionado=elmarco.ejercicio.getSelectedItem().toString();
miEjercicio=objFiltraMatricula.getEjercicioSeleccionado(ejercicioSeleccionado);
System.out.println(miEjercicio);
//Almacena en la variable seleccionMatricula el dato seleccionado al hacer clic

String seleccionMatricula=elmarco.matricula.getText().toString();
rsFiltraMatricula=objFiltraMatricula.filtraMatricula(seleccionMatricula);

try{

modeloTabla=new DefaultTableModel(null, titulos);

Object datos[]=new Object[5]; //Número de columnas de la consulta

while(rsFiltraMatricula.next()){
for(int i=0; i<5; i++){
datos[i]=rsFiltraMatricula.getObject(i+1);
}
modeloTabla.addRow(datos);
}
elmarco.t_datos.setModel(modeloTabla);
rsFiltraMatricula.close();

}catch (SQLException ex){
System.out.println("No se ha podido ejecutar el ResulSet rs clase ControladorBotonEjecuta");
ex.printStackTrace();
}
}


private final BusquedaMatriculas elmarco;
private String ejercicioSeleccionado, miEjercicio;


Ejercici ejercicio=new Ejercici();
ModeloConsultasMatricula objFiltraMatricula=new ModeloConsultasMatricula();
private ResultSet rsFiltraMatricula;
DefaultTableModel modeloTabla;
String titulos[]=new String[] {"Código", "Nombre", "Fecha Albarán", "Nº Albarán", "Matrícula"};


} //Fin de la clase ControladorConsultasMatricula


Os agradeciría que me ayudaseis pues llevo bastante tiempo con el problema y no consigo solucionarlo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema con getSelectedItem

Publicado por YYanes (140 intervenciones) el 24/03/2017 16:20:07
Hola amigo:

para identificar un campo seleccionado de una tabla pruebe esto:

1
2
3
4
5
6
7
8
9
10
int fila = MiTabla.getSelectedRow();
if (fila == -1)
{
  JOptionPane.showMessageDialog(null,"Debe seleccionar una fila","Error: Selección de datos",2);
}
else
{
   String valorFilaSeleccionada_1raColumna = MiTabla.getValueAt(fila, 0).toString();
   String valorFilaSeleccionada_2daColumna = MiTabla.getValueAt(fila, 1).toString();
}


Una vez teniendo este atributo bien identificado, podrás pasarlo por parámetro a cualquier función.
Un GigaSaludo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con getSelectedItem

Publicado por Renzo nevermindman@gmail.com (210 intervenciones) el 24/03/2017 16:58:50
Primero, se trata de un combobox y no una tabla.

Como no está tu código completo no puedo ejecutarlo, pero leyendolo veo esta línea:


miEjercicio=objFiltraMatricula.getEjercicioSeleccionado(ejercicioSeleccionado);

porque envías un parámetro a un método get ?


Renzo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con getSelectedItem

Publicado por Jose (3 intervenciones) el 24/03/2017 17:34:16
Esa línea de código la he obtenido al encapsular una variable. Lo que realmente quiero es pasar el dato obtenido al seleccionar el jComboBox a la variable dbName1.
El dato que yo quiero pasar es en este caso es el String obtenido de la variable ejercicioSeleccionado.

Gracias por la respuesta y un saludo,



Jose
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema con getSelectedItem

Publicado por Jose (3 intervenciones) el 24/03/2017 17:10:16
Gracias por la respuesta pero no es lo que estoy buscando.
Lo que yo quiero es poder pasar el dato de la variable ejercicioSeleccionado, el cual he obtenido al selecionarlo en un JComboBox

ejercicioSeleccionado=elmarco.ejercicio.getSelectedItem().toString();

de la clase ControladorConsultasMatricula, a la variable dbName1 de la sentencia

Connection accesoBBDD=miConexion1.dameConexion1(dbName1);

que se encuentra en la clase ModeloConsultasMatricula.

Gracias y un saludo

Jose
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar