Dans une application un menu permet d'afficher un JPanel différent en
fonction du choix fait. Un de ces JPanel en contient un autre (voir la
classe) qui contient 2 composants. Un JTextField et un bouton.
L'utilisateur peut entrer une valeur dans le champs text. Dans un
premier temps mon but est d'afficher la valeur entrée dans un
JOptionPane. Mais meme cela je n'y arrive pas. J'optiens un message
d'erreur (voir ci dessous).
public PChoix() {
setLayout(new BorderLayout());
JTextField filename = new JTextField(8);
add(filename,BorderLayout.WEST);
JButton choix = new JButton("ok");
choix.addActionListener(this);
add(choix,BorderLayout.CENTER);
add(new JLabel(" "),BorderLayout.EAST);
}
public void actionPerformed (ActionEvent e) {
Val = filename.getText();
JOptionPane.showMessageDialog(null, Val);
}
}
Résultats:
java.lang.NullPointerException
at chrono.PChoix.actionPerformed(PChoix.java:31)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
at
javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
at java.awt.Component.processMouseEvent(Component.java:5100)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Apparemment impossible de récupérer la saisie (surement parce que
l'écouteur ne trouve pas l'objet filename ...) mais pourquoi ? et
comment résoudre ce problème?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Xav
Dans les lignes JTextField filename = new JTextField(8); JButton choix = new JButton("ok");
tu affectes des variables locales au constructeur mais pas les variables membres.
si tu remplaces les lignes par: this.filename = new JTextField(8); this.choix = new JButton("ok");
Ca devrait fonctionner.
Xav.
et "koni" wrote in message news:403a13cd$0$19646$
Bonjour,
Dans une application un menu permet d'afficher un JPanel différent en fonction du choix fait. Un de ces JPanel en contient un autre (voir la classe) qui contient 2 composants. Un JTextField et un bouton. L'utilisateur peut entrer une valeur dans le champs text. Dans un premier temps mon but est d'afficher la valeur entrée dans un JOptionPane. Mais meme cela je n'y arrive pas. J'optiens un message d'erreur (voir ci dessous).
public PChoix() { setLayout(new BorderLayout()); JTextField filename = new JTextField(8); add(filename,BorderLayout.WEST); JButton choix = new JButton("ok"); choix.addActionListener(this); add(choix,BorderLayout.CENTER); add(new JLabel(" "),BorderLayout.EAST); }
public void actionPerformed (ActionEvent e) { Val = filename.getText(); JOptionPane.showMessageDialog(null, Val);
} }
Résultats: java.lang.NullPointerException at chrono.PChoix.actionPerformed(PChoix.java:31) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
at java.awt.Component.processMouseEvent(Component.java:5100) at java.awt.Component.processEvent(Component.java:4897) at java.awt.Container.processEvent(Container.java:1569) at java.awt.Component.dispatchEventImpl(Component.java:3615) at java.awt.Container.dispatchEventImpl(Container.java:1627) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128) at java.awt.Container.dispatchEventImpl(Container.java:1613) at java.awt.Window.dispatchEventImpl(Window.java:1606) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.EventQueue.dispatchEvent(EventQueue.java:456) at
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Apparemment impossible de récupérer la saisie (surement parce que l'écouteur ne trouve pas l'objet filename ...) mais pourquoi ? et comment résoudre ce problème?
Merci de votre aide, koni
Dans les lignes
JTextField filename = new JTextField(8);
JButton choix = new JButton("ok");
tu affectes des variables locales au constructeur mais pas les variables
membres.
si tu remplaces les lignes par:
this.filename = new JTextField(8);
this.choix = new JButton("ok");
Ca devrait fonctionner.
Xav.
et
"koni" <nicolas.ottavi2003NO@SPAMlaposte.net> wrote in message
news:403a13cd$0$19646$4d4eb98e@read.news.fr.uu.net...
Bonjour,
Dans une application un menu permet d'afficher un JPanel différent en
fonction du choix fait. Un de ces JPanel en contient un autre (voir la
classe) qui contient 2 composants. Un JTextField et un bouton.
L'utilisateur peut entrer une valeur dans le champs text. Dans un
premier temps mon but est d'afficher la valeur entrée dans un
JOptionPane. Mais meme cela je n'y arrive pas. J'optiens un message
d'erreur (voir ci dessous).
public PChoix() {
setLayout(new BorderLayout());
JTextField filename = new JTextField(8);
add(filename,BorderLayout.WEST);
JButton choix = new JButton("ok");
choix.addActionListener(this);
add(choix,BorderLayout.CENTER);
add(new JLabel(" "),BorderLayout.EAST);
}
public void actionPerformed (ActionEvent e) {
Val = filename.getText();
JOptionPane.showMessageDialog(null, Val);
}
}
Résultats:
java.lang.NullPointerException
at chrono.PChoix.actionPerformed(PChoix.java:31)
at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
at java.awt.Component.processMouseEvent(Component.java:5100)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Apparemment impossible de récupérer la saisie (surement parce que
l'écouteur ne trouve pas l'objet filename ...) mais pourquoi ? et
comment résoudre ce problème?
Dans les lignes JTextField filename = new JTextField(8); JButton choix = new JButton("ok");
tu affectes des variables locales au constructeur mais pas les variables membres.
si tu remplaces les lignes par: this.filename = new JTextField(8); this.choix = new JButton("ok");
Ca devrait fonctionner.
Xav.
et "koni" wrote in message news:403a13cd$0$19646$
Bonjour,
Dans une application un menu permet d'afficher un JPanel différent en fonction du choix fait. Un de ces JPanel en contient un autre (voir la classe) qui contient 2 composants. Un JTextField et un bouton. L'utilisateur peut entrer une valeur dans le champs text. Dans un premier temps mon but est d'afficher la valeur entrée dans un JOptionPane. Mais meme cela je n'y arrive pas. J'optiens un message d'erreur (voir ci dessous).
public PChoix() { setLayout(new BorderLayout()); JTextField filename = new JTextField(8); add(filename,BorderLayout.WEST); JButton choix = new JButton("ok"); choix.addActionListener(this); add(choix,BorderLayout.CENTER); add(new JLabel(" "),BorderLayout.EAST); }
public void actionPerformed (ActionEvent e) { Val = filename.getText(); JOptionPane.showMessageDialog(null, Val);
} }
Résultats: java.lang.NullPointerException at chrono.PChoix.actionPerformed(PChoix.java:31) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
at java.awt.Component.processMouseEvent(Component.java:5100) at java.awt.Component.processEvent(Component.java:4897) at java.awt.Container.processEvent(Container.java:1569) at java.awt.Component.dispatchEventImpl(Component.java:3615) at java.awt.Container.dispatchEventImpl(Container.java:1627) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128) at java.awt.Container.dispatchEventImpl(Container.java:1613) at java.awt.Window.dispatchEventImpl(Window.java:1606) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.EventQueue.dispatchEvent(EventQueue.java:456) at
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
Apparemment impossible de récupérer la saisie (surement parce que l'écouteur ne trouve pas l'objet filename ...) mais pourquoi ? et comment résoudre ce problème?
Merci de votre aide, koni
koni
Xav wrote:
Dans les lignes JTextField filename = new JTextField(8); JButton choix = new JButton("ok");
tu affectes des variables locales au constructeur mais pas les variables membres.
si tu remplaces les lignes par: this.filename = new JTextField(8); this.choix = new JButton("ok");
Ca devrait fonctionner.
Xav.
En effet j'avais trouvé cela, mais c est bien expliqué (car bien que j'avais trouvé la source du probleme je n'en avais pas saisi la raison, pourtant évidente)
Merci koni
Xav wrote:
Dans les lignes
JTextField filename = new JTextField(8);
JButton choix = new JButton("ok");
tu affectes des variables locales au constructeur mais pas les variables
membres.
si tu remplaces les lignes par:
this.filename = new JTextField(8);
this.choix = new JButton("ok");
Ca devrait fonctionner.
Xav.
En effet j'avais trouvé cela, mais c est bien expliqué (car bien que
j'avais trouvé la source du probleme je n'en avais pas saisi la raison,
pourtant évidente)
Dans les lignes JTextField filename = new JTextField(8); JButton choix = new JButton("ok");
tu affectes des variables locales au constructeur mais pas les variables membres.
si tu remplaces les lignes par: this.filename = new JTextField(8); this.choix = new JButton("ok");
Ca devrait fonctionner.
Xav.
En effet j'avais trouvé cela, mais c est bien expliqué (car bien que j'avais trouvé la source du probleme je n'en avais pas saisi la raison, pourtant évidente)