我想在与按钮关联的 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添加到面板之前添加 Action 监听器,并显示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());
}
关于java - ActionPerformed 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37544517/