
JComboBox
Publicado por Felipe (7 intervenciones) el 26/11/2016 06:23:28
Algo en sabe como cargar un JComboBox dependiente de otro.. Cuando los JComboBox son cargados de un fichero de tipo objeto.
Valora esta pregunta


0













public class Alumno implements Serializable{private int codigo;
private String Nombre;
.....
}public class Materia implements Serializable{private int codigo;
private int materia ;
}public class Horarios implements Serializable{private int codigo;
private Alumno alumno;
private Materia materia;
private String horarios;
}

public class Conexion {public Connection conexionMySql() {
Connection connection = null;String url = "jdbc:mysql://localhost/sistema?autoReconnect=true&useSSL=false";
String usuario = "root";
String password = "";
try {Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(url, usuario, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}return connection;
}}public class Consultas {public List<Rol> consultarRoles() {
Connection conn = new Conexion().conexionMySql();
List<Rol> listaRoles = new ArrayList<Rol>();
PreparedStatement stmt = null; ResultSet rs = null; try {stmt = conn.prepareStatement("SELECT * FROM rol ORDER BY rolName");
rs = stmt.executeQuery();
while(rs.next()){
Rol rol = new Rol(rs.getInt("rolId"), rs.getString("rolName"), rs.getString("rolDesc"));
listaRoles.add(rol);
}} catch (SQLException e) {
e.printStackTrace();
} finally {
try {rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
} }return listaRoles;
}public List<String> consultarUsuarioByRol(String rol) {
Connection conn = new Conexion().conexionMySql();
List<String> listaUsuarios = new ArrayList<String>();
PreparedStatement stmt = null; ResultSet rs = null; try {stmt = conn.prepareStatement("SELECT u.usuarioName AS usuario " +
"FROM rol r " +
"INNER JOIN usuario_rol ur ON r.rolId = ur.rolId " +
"INNER JOIN usuario u ON ur.usuarioId = u.usuarioId " +
"WHERE r.rolname = ?");
stmt.setString(1, rol);
rs = stmt.executeQuery();
while(rs.next()){
listaUsuarios.add(rs.getString(1));
}} catch (SQLException e) {
e.printStackTrace();
} finally {
try {rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
} }return listaUsuarios;
}}public class LlenarCombo extends JFrame implements ActionListener {private static final long serialVersionUID = -1313013814439124473L;
private JComboBox cboRoles, cboUsuarios;public LlenarCombo() {
super("Combos dependientes.");
setSize(350, 90);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setResizable(false);
cargarComponentes();
}public void cargarComponentes() {
cboRoles = new JComboBox();
cboRoles.addItem("Seleccione");
llenarComboRoles();
cboRoles.addActionListener(this);
cboUsuarios = new JComboBox();
cboUsuarios.addItem("Seleccione");
Container container = getContentPane();
container.setLayout(new GridLayout(2,2,10,10));
container.add(new JLabel("Rol:"));
container.add(cboRoles);
container.add(new JLabel("Usuario:"));
container.add(cboUsuarios);
}public void actionPerformed(ActionEvent e) {
if(cboRoles.getSelectedItem().equals("Seleccione")) {
cboUsuarios.removeAllItems();
cboUsuarios.addItem("Seleccione");
} else {
llenarComboUsuarios(cboRoles.getSelectedItem().toString());
} }private void llenarComboRoles() {
List<Rol> listaRoles = new Consultas().consultarRoles();
for(Rol rol : listaRoles) {
cboRoles.addItem(rol.getRolName());
} }private void llenarComboUsuarios(String rol) {
cboUsuarios.removeAllItems();
cboUsuarios.addItem("Seleccione");
List<String> listaUsuarios = new Consultas().consultarUsuarioByRol(rol);
for(String usuario : listaUsuarios) {
cboUsuarios.addItem(usuario);
} }}public class InterfazMain {public static void main(String[] args) {
LlenarCombo componente = new LlenarCombo();
componente.setVisible(true);
}}
