Java 执行的操作方法不';行不通

Java 执行的操作方法不';行不通,java,swing,actionlistener,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 JPan

我想在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);
有什么能帮我吗?错误在哪里( 我真的很感谢你的帮助


提前感谢。;

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

    /**
     * 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");

 JButtonCrearUsuario.addActionListener(new ActionListener()   {

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

        });

        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());



    }

在将JButton添加到面板并显示jdialog之前添加action Listener,然后它将工作:更改如下代码:

    /**
     * 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");

 JButtonCrearUsuario.addActionListener(new ActionListener()   {

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

        });

        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());



    }

1) 为了更快地获得更好的帮助,请发布一个or。2) 请学习常见的Java命名法(命名约定-例如
EachWordUpperCaseClass
firstWordLowerCaseMethod()
firstWordLowerCaseAttribute
,除非它是
大写常量
),并一致使用它。到底什么不起作用?你的调试器没有进入你的actionPerformed?你没有看到“布拉布拉”的消息吗?你看不到屏幕上的按钮吗?1)要更快获得更好的帮助,请发布或。2) 请学习常见的Java命名法(命名约定-例如
EachWordUpperCaseClass
firstWordLowerCaseMethod()
firstWordLowerCaseAttribute
,除非它是
大写常量
),并一致使用它。到底什么不起作用?你的调试器没有进入你的actionPerformed?你没有看到“布拉布拉”的消息吗?你看不到屏幕上的按钮吗?