ActionPerformed方法不起作用

时间:2016-05-31 11:30:14

标签: java swing actionlistener

我想在与按钮关联的ActionPerformed方法中执行一个方法,但是不起作用。我在很多时候都在研究,但是我无法发现错误。

这是我的代码:

/**
 * Método que crea un nuevo usuario en el sistema
 * y lo guarda en el arrayList de usuarios
 */
public static void crearUsuario()
{      
    JPanel panelCrearUsuario = new JPanel();
    JDialog frame = new JDialog();     

    //label nuevo usuario
    panelCrearUsuario.add(new JLabel("Nuevo Usuario: "));

    //textbox nuevo usuario
    JTextField jtNombreUsuario = new JTextField(15);
    panelCrearUsuario.add(jtNombreUsuario);

    //label DNI
    panelCrearUsuario.add(new JLabel("DNI usuario: "));

    //textbox DNI
    JTextField jtDNIUsuario = new JTextField(15);
    panelCrearUsuario.add(jtDNIUsuario);

    //botón crear usuario
    JButton JButtonCrearUsuario = new JButton("Crear usuario");
    panelCrearUsuario.add(JButtonCrearUsuario);

    frame.getContentPane().add(panelCrearUsuario); 
    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

    frame.pack();
    frame.setSize(420, 460);
    frame.setModal(true);
    frame.setVisible(true); 

    Usuario u = new Usuario();
    u.setNombre(jtNombreUsuario.getText());
    u.setDNI(jtDNIUsuario.getText());

    JButtonCrearUsuario.addActionListener(new ActionListener()   {

        @Override
        public void actionPerformed(ActionEvent e) {
            //Debbuging the IDE doesn't enter here :(
            System.out.println("blablabla");
            JButtonCrearUsuarioEvento(u);
        }

    });

}

我也是这样尝试的:

ActionListener listener = new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {

            System.out.println("blablabla");
            JButtonCrearUsuarioEvento(u);

        }
    };

    JButtonCrearUsuario.addActionListener(listener);

有什么能帮助我吗?错误在哪里? :( 我真的很感激任何帮助。

提前致谢。 ;)

1 个答案:

答案 0 :(得分:2)

在将JButton添加到面板并显示jdialog之前添加动作侦听器,然后它将起作用:更改代码如下:

dll