Java - JComboBox

 
Vista:
sin imagen de perfil

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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

JComboBox

Publicado por DAMPER (13 intervenciones) el 26/11/2016 07:01:00
La respuesta esta en el evento AP
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
sin imagen de perfil

JComboBox

Publicado por Felipe (7 intervenciones) el 26/11/2016 13:51:59
Y cual es el evento AP
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
sin imagen de perfil

JComboBox

Publicado por DAMPER (13 intervenciones) el 27/11/2016 05:32:35
actionPerformed (se ejecuta al accionar el JComboBox)
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
sin imagen de perfil

JComboBox

Publicado por Felipe (7 intervenciones) el 27/11/2016 18:31:26
ese eventos es el que tengo pero no me sale lo quiero. tengo una clase
1
2
3
4
5
public class Alumno implements Serializable{
    private  int codigo;
    private String Nombre;
.....
}

y otra clase que se llama
1
2
3
4
public class Materia implements Serializable{
    private int codigo;
    private int materia ;
}

y otra que se llama
1
2
3
4
5
6
public class Horarios implements Serializable{
    private int codigo;
    private Alumno alumno;
    private  Materia materia;
      private String horarios;
}


y con eso lo que quiero es mostrar dos Combobox uno que cargue los nombre de los alumnos pero ese ya lo tengo a hora lo que no me funciona es que al seleccionar el nombre del combobox1 me muestre en el combobox 2 la materia y horario que pertenecen al alumno ...... todo los datos los inserto con lista doble guardadas en un fichero.
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
Imágen de perfil de Lawliet
Val: 308
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

JComboBox

Publicado por Lawliet (303 intervenciones) el 27/11/2016 23:30:28
Hola...

Aquí tenemos un ejemplo de como llenar un combo cuando se selecciona otro, aunque yo lo tengo con base de datos la esencia es la misma lo único que cambia es la forma en que se extrae la información, tu lo manejas con un archivo de texto plano y yo con una base de datos, sin embargo, te puede servir de ejemplo.

Conexion.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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;
	}
}

Consultas.java
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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;
	}
}

LlenarCombo.java
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
51
52
53
54
55
56
57
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);
		}
	}
}

InterfazMain.java
1
2
3
4
5
6
7
public class InterfazMain {
 
	public static void main(String[] args) {
		LlenarCombo componente = new LlenarCombo();
		componente.setVisible(true);
	}
}

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

Saludos!
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