Java - Ocultar JTextField

 
Vista:
sin imagen de perfil
Val: 32
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Ocultar JTextField

Publicado por Sergio (19 intervenciones) el 09/11/2016 16:46:39
Buenas tardes,

Necesito crear un campo que sea dinamico, y active o desactive en función de la seleccion de un comboBox, pero en el momento que se muestra, soy incapaz de volver a hacer invisible. Esta es la parte del código que uso

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
tipoCocinaEtiqueta.addItemListener(new ItemListener() {
	public void itemStateChanged(ItemEvent g) {
		JTextField campoExtra1 = new JTextField();
 
		if (g.getItem().toString().equals("India")) {
			campoExtra1.setVisible(true);
			ventana.add(campoExtra1);
			campoExtra1.setBounds(330, 130, 160, 25);
		}
		if (!(g.getItem().toString().equals("India"))) {
			campoExtra1.setVisible(false);
		}
 
	}
});

Gracias de antemano Señores
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

Ocultar JTextField

Publicado por Tom (1831 intervenciones) el 09/11/2016 20:08:44
Estás creando (y añadiendo) un nuevo campo cada vez ... Es distinto campo el que que pones a visible que el que pones a no visible ...
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
Val: 32
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Ocultar JTextField

Publicado por Sergio (19 intervenciones) el 09/11/2016 20:12:13
Lo siento pero no lo veo... llevo años sin programar en java, y llevo muchas horas dando vueltas a esto hoy. ¿me puede ser un poco mas conciso? ¿una correccion del codigo?

Gracias de antemano
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

Ocultar JTextField

Publicado por Tom (1831 intervenciones) el 09/11/2016 20:51:40
Cada vez que se activa el listener (el código que has puesto) creas un nuevo JTextField y lo añades a la ventana.
O sea, que estás colocando varios campos, uno sobre otro en la misma posición, en la ventana. Cuando añades un nuevo campo y lo pones a invisible, lo que se ve es el campo que habías añadido en el evento anterior.

Para que veas el error, haz esto:

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
tipoCocinaEtiqueta.addItemListener(new ItemListener() {
 
	public void itemStateChanged(ItemEvent g) {
                static int delta = 0;
		JTextField campoExtra1 = new JTextField();
 
 
 
		if (g.getItem().toString().equals("India")) {
 
			campoExtra1.setVisible(true);
 
			ventana.add(campoExtra1);
 
			campoExtra1.setBounds(330, 130 + delta, 160, 25);
                        delta += 10;
 
		}
 
		if (!(g.getItem().toString().equals("India"))) {
 
			campoExtra1.setVisible(false);
 
		}
 
 
 
	}
 
});
Editado: El que pones a invisible ni siquiera lo has añadido a la ventana, es algo que no tiene ningún efecto.
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
Val: 32
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Ocultar JTextField

Publicado por Sergio (19 intervenciones) el 09/11/2016 20:54:19
¿Tiene solución? Necesito algo más de información. ....
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

Ocultar JTextField

Publicado por Tom (1831 intervenciones) el 09/11/2016 21:00:46
Crea ese JTextfield en el mismo sitio en el que crees el resto del UI, y en el listener limítate a cambiar su visiblidad.
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
Val: 32
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Ocultar JTextField

Publicado por Sergio (19 intervenciones) el 09/11/2016 23:07:35
Arreglado pues,

Quedaría

1
2
3
4
5
6
7
8
9
10
11
final JTextField campoExtra1 = new JTextField();
tipoCocinaEtiqueta.addItemListener(new ItemListener() {
	public void itemStateChanged(ItemEvent g) {
		campoExtra1.setVisible(false);
		if (g.getItem().toString().equals("India")) {
			campoExtra1.setVisible(true);
			ventana.add(campoExtra1);
			campoExtra1.setBounds(330, 130, 160, 25);
		}
	}
});

Gracias Tom. ¿Sabes de algunos ejemplos practicos para el desarrollo de interfaces de usuario y este tipo de eventos?
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