Java 执行的操作方法不';行不通
我想在ActionPerformed方法中执行一个与按钮关联但不起作用的方法。我花了很多时间进行研究,但我无法发现错误 这是我的代码: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
/**
* 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?你没有看到“布拉布拉”的消息吗?你看不到屏幕上的按钮吗?