Rechercher : dans
Par :

JAVA JOptionPane.showInputDialog

Dernière réponse le 16 nov 2009 à 18:44:27 NoooR, le 6 aoû 2008 à 18:35:00 
 Signaler ce message aux modérateurs

Bonjour,
j'ai utilisé la méthode JOptionPane.showInputDialog(null,"Entrer le nom du fichier", Enregistrer", JOptionPane.PLAIN_MESSAGE) mais quand je clique sur le bouton (annuler) l'application se ferme et un message d'erreur qui s'affiche (java.lang.NullPointerException), je sais que je doit gerer une exception mais je sais pas comment, aidez moi SVP

Configuration: Windows XP
Firefox 2.0.0.14

Meilleures réponses pour « JAVA JOptionPane.showInputDialog » dans :
[Firefox] plugin Java Jre de Sun VoirA) Les différentes variantes Java chez Sun B) Installation sous Mandriva Limited Edition 2005 ETAPE 1 ETAPE 2: Création du lien symbolique C) Installation sous debian lenny D) Installation sous ubuntu hardy heron A) Les différentes...
Installer Java sous Ubuntu VoirPar défaut, Firefox n'est pas fourni avec Java. Voici comment procéder pour l'installer: Ouvrez un terminal (Menu Applications > Accessoires > Terminal) et tapez: sudo aptitude install sun-java6-jre sun-java6-plugin ou sudo aptitude install ...
[Logiciel libre] Installation firefox 2.0+java+flash VoirInstallation firefox 2.0+java+flash en ligne de commande A. INTRODUCTION B. INSTALLATION FIREFOX 1. Création d'environnement 2. Téléchargement et vérification de la signature 3. Installation de Firefox 4. Démarrage de l'application C....
Télécharger Java Runtime Environment VoirJava Runtime Environment (JRE) installe la machine virtuelle Java, permettant de jouer en ligne, de discuter avec des personnes dans le monde entier, de calculer les intérêts de votre prêt immobilier ou de visualiser des images en 3D. Ces...
Java - Premier programme VoirPremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...
Java - Les types de données VoirLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et...
Java - Les packages VoirIntroduction aux packages La programmation Java consiste à créer des classes. Or, étant donné qu'un programme est généralement développé par une équipe de programmeurs, c'est-à-dire plusieurs personnes, le fait de concaténer (mettre bout à bout)...

1

sandul, le 6 aoû 2008 à 18:40:33

Salut,

Euh, tu fais qqch du genre

try {
// ton code 
} catch (Exception e) {
// la gestion de l'exception
} finally {
// éventuellement faire un clean ici: fermeture des handlers, des result sets, des connexions...
}


Dans un autre ordre d'idées, pour les fichiers tu peux également utiliser JFileChooser.
++

Répondre à sandul

2

NoooR, le 6 aoû 2008 à 18:58:48

Je connais cette forme mais que dois je mettre dedans?

Répondre à NoooR

3

sandul, le 6 aoû 2008 à 19:00:15

De quelle "forme" parles-tu? du bloc try..catch ou bien de l'appel à JFileChooser?

Répondre à sandul

4

ray_Fab, le 6 aoû 2008 à 19:01:19

Bonjour euh je pense que la bonne solution c'est pas de gerer le NullPointerExpception par ce que ce genre d'exception es levée une fois qu'il y a un objet qui n'est pas initialisé enfin un projet d'allocation...il suffit de voir ce que fait la JOptionPane et donc évidement ce qu'elle doit faire en cas d'annulation(enfin une fois que l'utilisateur veux rien faire...) où doit aller la JOptionPane.En générale une JOptionPane return toujours 0 ou 1 ou 2(-1) en cas d'annulation c'est à dire lorsque la JOptionPane return 2 ou -1 que doit-elle faire?c'est tout simplement la la solution et l'objet retourner dans ce cas ne doit pas être null et le tour est joué...
Bon Courage!

Répondre à ray_Fab

5

sandul, le 6 aoû 2008 à 19:09:45

Oui, tout à fait, j'avais lu trop vite; les NullPointerException ne sont pas à catcher, il faut gérer cela correctement depuis le code.

Répondre à sandul

6

NoooR, le 6 aoû 2008 à 19:25:18

J'ai pensé a ca mais ds le code source ta pas la main pour gerer ce qui doi faire en cas d'annulation, tu peut le faire pour les boite de dialogue mais pas pour les boite de saisie

Répondre à NoooR

7

sandul, le 6 aoû 2008 à 19:27:57

Ben, poste ton code (uniquement cette partie-là)

Répondre à sandul

8

NoooR, le 7 aoû 2008 à 18:06:16

BufferedReader IN = null;
try {
IN = new BufferedReader(new FileReader(JOptionPane.showInputDialog(null,
"Entrer le nom du fichier", "Ouvrir",JOptionPane.PLAIN_MESSAGE)));
}
catch (Exception exp) {
Erreur(exp, 1);
}

Répondre à NoooR

9

sandul, le 7 aoû 2008 à 18:16:43
  • +2

try {
	String fileName = JOptionPane.showInputDialog(null, "Entrer le nom du fichier", "Ouvrir",
			JOptionPane.PLAIN_MESSAGE);
	if (fileName != null) {
		in = new BufferedReader(new FileReader(fileName));
	}
} catch (Exception exp) {
	Erreur(exp, 1);
}


Mais encore une fois, pour ce genre de choses j'utiliserais JFileChooser, vraiment fait pour.

Répondre à sandul

10

NoooR, le 7 aoû 2008 à 22:08:05

Toujour le mm pb

Répondre à NoooR

11

danimo, le 8 aoû 2008 à 01:03:53

Salut,

C'est bien sur cette ligne : if (fileName != null) {
in = new BufferedReader(new FileReader(fileName));
}
que tu as : NullPointerException ?

Quand on clique sur Annuler fileName est force a null et on ne peut plus "citer" filname sans lever NullPointerException.

Je vais chercher un peu plus tard le moyen de contourner.

a+

dan.

Répondre à danimo

12

danimo, le 19 avr 2009 à 22:10:09
  • +1

Salut,

Comme il n'y a pas eu de nouvelle réponse j'ai totalement oublié de donner ma solution désolé.

Pour ceux qui seraient intéressés:
En modifiant légèrement la réponse de sandul:

String fileName = "";
try {
fileName = JOptionPane.showInputDialog(null, "Entrer le nom du fichier", "Ouvrir",
JOptionPane.PLAIN_MESSAGE);
//Si on annule c'est la ligne suivante qui provoque la levée de NullPointerException
if (fileName.equals(null)) {} // on ne fait rien
}

catch(NullPointerException npe) // cas <annuler> : fileName.equals(null)
{
fileName = "Saisie annulée";
}
if (!fileName.equals("Saisie annulée") ){
in = new BufferedReader(new FileReader(fileName));
-------

Cordialement,

Dan

Répondre à danimo

13

tiDevDu54, le 16 nov 2009 à 16:36:34

J'aurai voulu savoir comment faire pour dire à l'application de se quitter lorsque l'utilisateur clique sur le bouton "annuler" dans un JOptionPane.showInputDialog. Parce que pour le moment il m'affiche une erreur lorsque je clique sur le bouton annulé ou si je clique sur la croix en haut a droite.

Répondre à tiDevDu54

14

 danimo, le 16 nov 2009 à 18:44:27

Salut,

La réponse est déjà donnée avec fileName, mais j'ajoute celle-ci plus générale:

String uneEntree = ""; 
         try { 
            uneEntree = JOptionPane.showInputDialog(null, "Entrer quelque chose au clavier,\n"
               + "(ou rien et <Intro> pour dire que la saisie est terminee):", "Un Titre", 
               JOptionPane.PLAIN_MESSAGE); 
         //Si on annule c'est la ligne suivante qui provoque la levée de NullPointerException 
            if (uneEntree.equals(null)) {} // on ne fait rien 
            if (uneEntree.equals(""))
             
               System.out.println("Fin de saisie par <Intro> sans rien frapper au clavier");
         } 
         
             catch(NullPointerException npe) // cas <annuler> : uneEntree.equals(null) 
            { 
               System.out.println("La saisie  a ete annulee par le clique du bouton <Annuler>"); 
            } 


Cordialement,

dan

Répondre à danimo