Java - Seleccionar item (tipo objeto) de jcombobox a partir de jtable

 
Vista:

Seleccionar item (tipo objeto) de jcombobox a partir de jtable

Publicado por JC (3 intervenciones) el 01/01/2018 18:31:01
Soy nuevo en esto (estoy aprendiendo). Tengo un jtable de proveedores (tblVendor) que muestra solo dos columnas (Id y nombre) las cuales obtengo mediante consulta a la base de datos en la tabla de proveedores. Cuando el usuario da doble click sobre una fila del jtable (un proveedor especifico) dicho evento llama un formulario de detalle cuyo propósito es mostrar la información detallada del proveedor, hasta aqui no se ha llenado sino solamente se muestra el formulario.
Inmediatamente después de la inicialización de los componentes del formulario de detalle (el cual incluye un jcombobox), ejecuto un método cuyo propósito es rellenar el jcombobox con los paises que se encuentra en la tabla respectiva del banco de datos (otra consulta), los países son pasados como Objetos al jcombobox y sobreescribo el método toString con el proposito de que solo muestre las iniciales del país en el jcombobox. Hecho esto el flujo del programa retorna al evento doble click del jtable el cual prosigue con una consulta al banco de datos para traer todos los datos de la tabla del proveedor para mostrarlos en el formulario de detalle, hasta aqui todo bien, EL PROBLEMA ES, como hago para que el jcombobox del formulario detalle quede seleccionado en el pais respectivo del proveedor al cual se le dio click? Imaginemos que en el banco de datos hay 10 países y que el país del proveedor especifico que se selecciono es China, entonces el jcombobox del formulario de detalle debe de quedar seleccionado en dicho país (CN), entiendase por las siglas de dicho país.
Como pueden ver utilice el metodo getselectItem pero no funciona pues no selecciona nada. Tambien necesito pasarle al jcombobox el pais como un objeto para posteriores modificaciones.

El código en el evento click del jtable es el siguiente:

private void tblVendorMouseClicked(java.awt.event.MouseEvent evt) {
if (evt.getClickCount()==2) {
int fila = tblVendor.getSelectedRow();
int codigo = Integer.parseInt(tblVendor.getValueAt(fila, 0).toString());

FrmVendorDetail fvd = new FrmVendorDetail();
fvd.setVisible(true);
try {
if (con.conectarse()) {
ps = con.getCon().prepareStatement("Select * from fas.vendor where vendorCode = ?");
ps.setInt(1, codigo);
ResultSet rs = ps.executeQuery();

while (rs.next()) {
fvd.txtVendorCode.setText(rs.getString(1));
fvd.txtVendorName.setText(rs.getString(2));
fvd.txtVendorId.setText(rs.getString(3));
fvd.CbxVendorType.setSelectedItem(rs.getString(4));
fvd.cbxCountry.setSelectedItem(rs.getString(5));
fvd.txtState.setText(rs.getString(6));
fvd.txtCity.setText(rs.getString(7));
fvd.txtDistric.setText(rs.getString(8));
fvd.txtAddress.setText(rs.getString(9));
fvd.txtPhone.setText(rs.getString(10));
}
}
con.desconectarse();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);

}
}
}

El código de inicialización el formulario detalle es:
public FrmVendorDetail() {
initComponents();
llenarComboBoxCountry();

}


El código del método llenar el combo es el siguiente:
private void llenarComboBoxCountry() {
try {
if (con.conectarse()) {
ps = con.getCon().prepareStatement("Select * from fas.country");
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Country country = new Country();
country.setIdCountry((rs.getInt(1)));
country.setCountryName(rs.getString(2));
country.setShortName(rs.getString(3));
country.setCountryCode((rs.getInt(4)));
cbxCountry.addItem(country);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}

Desde ya gracias por su ayuda.
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

Seleccionar item (tipo objeto) de jcombobox a partir de jtable

Publicado por Ramón (6 intervenciones) el 01/01/2018 22:37:29
Hola.
Creo que con un bucle podrías recorrer el contenido del JComboBox e ir comparando el valor de cada uno de sus elementos con el valor del país del proveedor que tienes seleccionado y en el momento en que coincidan, seleccionas ese elemento con el método setSelectedItem(índice).
Dale una vuelta a esta idea y si no te funciona, te propongo el código.
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

Seleccionar item (tipo objeto) de jcombobox a partir de jtable

Publicado por JC (3 intervenciones) el 01/01/2018 23:08:04
Ramon

Lo hice como indicas y me funciono.

Gracias

JC
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