post icon

Activar/Desactivar componentes de un container en java

Buenas a todos, con este pequeño metodo podemos activar o desactivar componentes de un container que podria ser un JPanel por ejemplo, que por lo general sera un JPanel de todas formas, aqui va el codigo, en mi caso pregunto si el componente es un JButton, pero podria ser un JTextField, tambien podrian ser mas especificos con el primer parametro del metodo, podrian cambiar por JPanel, yo use Container por que es mas generico ,puesto que un JPanel siempre o por lo general estara sobre un objeto Container, este metodo pueden llamar desde el windowOpened(), y pasarle false si es que preguntan por objetos JTextFields(de esa manera al abrirse la ventana apareceran totalmente desactivados los JTextFields), y tener un boton editar que al presionarlo le pase true al metodo y ahi se activarian los componentes JTextFields, ustedes ya veran, saludos

1
2
3
4
5
6
7
8
private void activarJButton(Container c, boolean enabled) {
		Component Component[] = c.getComponents(); //obtenemos los componentes en un array de tipo Component
		for (int i = 0; i < Component.length; i++) {
			if (Component[i] instanceof JButton) {//preguntamos si el componente es un JButton
				Component[i].setEnabled(enabled);//activamos o desactivamos el JButton
			}			
		}
	}
25 Marzo 2010

Comentarios desde Facebook:

  1. avatar
    gilson caballero cazzola PARAGUAY Google Chrome Windows
    24 Mayo 2011 at 19:30 #

    utiliza el metodo setVisible(true o false) segun tu gusto, saludos

  2. avatar
    mgm SPAIN Mozilla Firefox Windows
    21 Mayo 2011 at 12:05 #

    Buenas
    estoy trabajando con netbeans y tengo lo tipico. un menu, barra de herramientas y un jpanel principal que contiene otros jpanel y con lo q organizo todo.
    Me gustaria saber como podria hacer no visible el jpanel principal.
    mi idea es q segun el boton q pulses en el menu salga un jpanel principal determinado y desearia ponerlo no visible para poder trabajar con el siguiente jpanel.

    alguna idea…
    muchas gracias

Responder