OVH Cloud OVH Cloud

JOptionPane

5 réponses
Avatar
Le Petit Prince
Bonjour, Bonsoir,

Dans un JOptionPane j'ai un bouton OK, et Annuler, je voudrais affecter une
action sur le Bouton Annuler du style changer un JLabel qui se trouve sur un
JFRame comment je dois faire ? Merci de votre aide

Le Petite Prince

5 réponses

Avatar
Le Petit Prince
Information complemantaire

[CS]

String_Nbre_B = JOptionPane.showInputDialog(null,"Que vaut B dans ax² + bx +
c ? ","Entrez les informations",JOptionPane.INFORMATION_MESSAGE);

[/CS]

Quand je clique sur annuler il me dit

java.lang.NullPointerException

at java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:980)

at java.lang.Double.valueOf(Double.java:202)

at NePasSupprimer$2.actionPerformed(NePasSupprimer.java:126)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)

at
javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButto
n.java:1839)

at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:4
20)

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.ja
va: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)

Que puis je faire pour eviter cela ?

Merci de votre aide
Avatar
vclassine
"Le Petit Prince" <et oui c moi> wrote in message news:<4021546d$0$7047$...
Information complemantaire

[CS]

String_Nbre_B = JOptionPane.showInputDialog(null,"Que vaut B dans ax² + bx +
c ? ","Entrez les informations",JOptionPane.INFORMATION_MESSAGE);

[/CS]

Quand je clique sur annuler il me dit

java.lang.NullPointerException
...

Que puis je faire pour eviter cela ?


Les JOptionPane exigent toujours un composant parent pour s'afficher
(souvent la fenêtre en cours). Tu ne peux donc pas passer "null" comme
premier paramètre (d'ailleurs il y a peu de fct de l'API auxquelles tu
puisse passer null la où elle demandent un paramètre). Tu peux, par
exemple, passer la variable qui désigne la fenêtre principale de ton
appli...

Avatar
Le Petit Prince
Salut Vincent

dit tu ne sais pas être un peu plus claire car je suis débutant de chez
débutant ;)
donné un exemple de CS pour que je comprenne mieu
Merci

@+
Avatar
vclassine
"Le Petit Prince" <et oui c moi> wrote in message news:<4023e373$0$7036$...
Salut Vincent

dit tu ne sais pas être un peu plus claire car je suis débutant de chez
débutant ;)
donné un exemple de CS pour que je comprenne mieu
Merci


Pour être un peu plus clair disons que le JOptionPane ne peut pas
s'afficher sans s'appuyer sur un autre composant, celui qui est
attendu en premier argument de showInputDialog.

Alors pour faire assez simple (ça doit marcher :

class myFrame extends javax.swing.JFrame
{

private String String_Nbre_B;

public myFrame()
{
super();
}

public void show() //surcharge de la méthode show de JFrame
{
super.show(); //appel à la méthode show de Jframe -->
Affichage de la fenêtre
//dès l'affichage de la fenêtre mère on affiche le message
input... Notes l'utilisation de this à la place de null, qui était
certainement ton erreur.
String_Nbre_B = JOptionPane.showInputDialog(this,"Que vaut B
dans ax² + bx + c ? ","Entrez les
informations",JOptionPane.INFORMATION_MESSAGE);


}
}

Avatar
Emmanuel Puybaret
Les JOptionPane exigent toujours un composant parent pour s'afficher
(souvent la fenêtre en cours). Tu ne peux donc pas passer "null" comme
premier paramètre (d'ailleurs il y a peu de fct de l'API auxquelles tu
puisse passer null la où elle demandent un paramètre). Tu peux, par
exemple, passer la variable qui désigne la fenêtre principale de ton
appli...


En fait, on peut passer null (heureusement sinon aucun exemple ou presque du
Cahier Java [1] ne fonctionnerait !).
Ca permet d'utiliser par exemple d'utiliser showMessageDialog tout seul pour
afficher des infos et en plus c'est très pratique car showMessageDialog
permet d'afficher un peu de tout en dessinant correctement les caractères
accentués (ce que ne fait pas la console).

Exemples :
- JOptionPane.showMessageDialog(null, "texte normal");

- JOptionPane.showMessageDialog(null, "<html>texte en <b>gras</b>"
+ " et <i>italique</i></html>");

- JOptionPane.showMessageDialog(null, "textenavec retour u00e0 la ligne");

- JTextField champNom = new JTextField (20);
JTextField champPrenom = new JTextField (20);
JComponent [] composants = {new JLabel("Nom :"), champNom,
new JLabel("Pru00e9nom :"), champPrenom};
JOptionPane.showMessageDialog(null, composants);

Epatant non ?
--
Emmanuel PUYBARET
Email :
Web : http://www.eteks.com
Auteur du Cahier du programmeur Java [1] / Editions Eyrolles :
http://www.eteks.com/services/cahierjava1.html