Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] No pasa el if

Estas en el tema de No pasa el if en el foro de Java en Foros del Web. Hola, Tengo un problema y es que cuando se pulsa al JButton este no pasa el if, y la verdad no se porqué a ver ...
  #1 (permalink)  
Antiguo 17/09/2015, 11:04
 
Fecha de Ingreso: junio-2005
Mensajes: 107
Antigüedad: 18 años, 10 meses
Puntos: 0
No pasa el if

Hola,

Tengo un problema y es que cuando se pulsa al JButton este no pasa el if, y la verdad no se porqué a ver si alguien me puede ayudar! Gracias.

Código Java:
Ver original
  1. import java.awt.event.ActionEvent;
  2. import java.awt.event.ActionListener;
  3. import javax.swing.JButton;
  4. import javax.swing.JFrame;
  5. import javax.swing.JProgressBar;
  6.  
  7. public class EjercicioModulo2 extends JFrame
  8. {
  9.     private JButton boton;
  10.     private JProgressBar barra;
  11.    
  12.     public EjercicioModulo2()
  13.     {
  14.         super("Ventana 1");
  15.         setLayout(null);
  16.         Componentes();
  17.        
  18.     }
  19.     private void Componentes()
  20.     {
  21.         //Creamos el JButton
  22.         JButton boton = new JButton("Siguiente Frame");
  23.         boton.setBounds(200, 100, 130, 30);
  24.        
  25.         //Creamos el ProgressBar
  26.         JProgressBar barra =new JProgressBar();
  27.         barra.setBounds(150, 65, 250, 10);
  28.         add(barra);
  29.        
  30.         ManejadorCampo manejador = new ManejadorCampo();
  31.         boton.addActionListener(manejador);
  32.         add(boton);
  33.     }
  34.    
  35.     private class ManejadorCampo implements ActionListener
  36.             {
  37.                 public void actionPerformed(ActionEvent evento)
  38.                 {
  39.                     //System.out.print("Esto es una prueba");
  40.                     if(evento.getSource() == boton)
  41.                     {
  42.                      getContentPane().setBackground(new java.awt.Color(225, 0, 0));
  43.                     }
  44.                 }
  45.             }
  46.        
  47. }
  #2 (permalink)  
Antiguo 17/09/2015, 11:23
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 8 meses
Puntos: 182
Respuesta: No pasa el if

Buenas,

Tienes creada una variable de instancia llamada 'boton' que nunca inicializas.
En su lugar crear una variable local llamada tambien 'boton' y la inicializas y aniades al Jframe.
Por tanto, cuando llegas al actionPerformed, la variable de instancia 'boton' vale null porque nunca le has asignado un valor.

En resumen, para que funcione como quieres solo tienes que cambiar la linea:
Código Java:
Ver original
  1. JButton boton = new JButton("Siguiente Frame");

Por esta:
Código Java:
Ver original
  1. this.boton = new JButton("Siguiente Frame");

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 17/09/2015, 11:38
 
Fecha de Ingreso: junio-2005
Mensajes: 107
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: No pasa el if

Muchas gracias!!! estoy empezando en estoy ahora mismo son todo dudas.

Etiquetas: jframe
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:10.