Je vais avoir un NullPointerException dans un JTextField.getText() dans un actionPerformed événement:NullPointerException dans un JTextField.getText() à l'intérieur d'un événement actionPerformed
import javax.swing.*;
public class myForm extends JInternalFrame
{
private JTextField txtName;
private String name;
public myForm()
{
super("My Form", true, true, true, true);
txtName = new JTextField();
JButton button = new JButton("button");
button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
name = txtName.getText(); // here is the NullPointerException
}
}
}
}
Voici la pile trace:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at ContatoFormulario$1.actionPerformed(ContatoFormulario.java:80)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6216)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5981)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Quelqu'un a une idée? J'essaie déjà de faire des recherches sur le web et je ne trouve aucune solution.
Ce problème se produit plus fréquemment quand nous re-instancier JTextField comme ceci:
public class myForm extends JInternalFrame
{
private JTextField txtName;
public myForm()
{
JTextField txtName = new JTextField();
}
}
Mais ce n'est pas le cas, une idée?
Votre premier exemple est incompilable, car vous avez une syntaxe non valide pour la méthode addActionListener() et vous n'ajoutez jamais le bouton au cadre, donc il ne devrait jamais déclencher un ActionEvent. Nous aurons besoin de voir le code actuel pour vous aider. –