Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > JButtons no reconocidos

Tengo creado un formulario que contiene jpanels, jtextfields, jbuttons, etc. Quiero crear un metodo para habilitar - deshabilitar ciertos componentes dependiendo de si se estan consultando o editando los datos del formulario. Intente crear el metodo al final del formulario de la siguiente manera:

public void deshabilitarBotones(boolean habilitado) {
boton1.setEnabled(habilitado);
boton2.setEnabled(!habilitado);
...
}
y asi con todos los componentes. Pero el problema es que cuando escribo el nombre de los botones me da error, como si los mismos no existieran. Y es solo con los botones, porque el resto de componentes (ej, jtextfield) no tengo problemas en modificar sus propiedades dentro de este metodo. No se si me explique bien, espero que si y que me puedan ayudar. Gracias! Saludos.

mayo 19, 2014 | Registered Commenterrengo0

" Pero el problema es que cuando escribo el nombre de los botones me da error, como si los mismos no existieran."

¿Qué "nombre" es ese, y qué error?
¿Puedes poner un ejemplo con código?

mayo 19, 2014 | Registered Commenterchoces

Este es exactamente el método que quiero crear:

public void habilitarCampos (boolean habilitado) {
txtCodigo.setEnabled(!habilitado);
txtNombre.setEnabled(habilitado);
txtApellido.setEnabled(habilitado);
txtDni.setEnabled(habilitado);
txtFechaNac.setEnabled(habilitado);
txtNacionalidad.setEnabled(habilitado);
txtEstadoCivil.setEnabled(habilitado);
txtDireccionPrincipal.setEnabled(habilitado);
txtDireccionAlternativa.setEnabled(habilitado);
txtTelefonoParticular.setEnabled(habilitado);
txtTelefonoMovil.setEnabled(habilitado);
txtEmail.setEnabled(habilitado);
txtEmailAlternativo.setEnabled(habilitado);

// De aquí en adelante es donde en cada línea me marca error, indicandome que cada uno de esos componentes no existen

btnNuevo.setEnabled(!habilitado);
btnGuardar.setEnabled(habilitado);
btnCancelar.setEnabled(habilitado);
btnModificar.setEnabled(!habilitado);
btnEliminar.setEnabled(!habilitado);
btnPrimero.setEnabled(!habilitado);
btnAnterior.setEnabled(!habilitado);
btnSiguiente.setEnabled(!habilitado);
btnUltimo.setEnabled(!habilitado);

}

Este método esta creado al final de la clase. Todos los componentes fueron creados desde el WindowsBuilder. El error solo me lo marca con los JButtons, con los JTextField no tengo ningun problema. Si hace falta pongo el código completo de la clase, no lo hice porque es muy largo y supongo que se entiende cual es el problema, pero de lo contrario avisarme y lo copio tal cual. Gracias por responder!

mayo 19, 2014 | Registered Commenterrengo0

¿Esas variables de los botones son públicas?.
Para que el método las "vea", tienen que estar accesibles.

mayo 19, 2014 | Registered Commenterchoces

Pongo un ejemplo de como esta creado el JButton "Guardar" (los demas son iguales):

JButton btnGuardar = new JButton("Guardar");
btnGuardar.setEnabled(false);
btnGuardar.setFont(new Font("Times New Roman", Font.BOLD, 14));
btnGuardar.setBounds(395, 109, 99, 34);
frmClientes.getContentPane().add(btnGuardar);

mayo 19, 2014 | Registered Commenterrengo0

Si esta declaración:

JButton btnGuardar = new JButton("Guardar");

es local a un método, no es accesible fuera de ese método.
Para hacerla accesible a otros métodos de la misma clase, debería ser una propiedad de la clase.

mayo 19, 2014 | Registered Commenterchoces