[swing] sauvegarde

sauvegarde [swing] - Java - Programmation

Marsh Posté le 22-05-2006 à 13:08:37    

bonjour, j'avais pas demandé d'aide depuis le debut en essayant de me demerder tout seul, mais la j'avoue que je bloque depuis pas mal de temps sur deux conneries, et que je trouve pas la soluce sur internet
 
le premier, c'est que je voudrait modifier l'aspect de mes bouton quand je clique dessus resolu : JToggleButton
 
le deuxieme, c'est au niveau de la sauvegarde
j'utilise showSaveDialog(), ca marche bien si je veux reecrire dans un fichier deja existant, mais si le fichier n'existe pas, il me sort un IOFILENOTEXIST, quand je clique sur le bouton sauvegarder, et si je clique une deuxieme fois, il enregistre correctement (et encore, avant que je mette le try, il plantait completment l'appli)...
 

Code :
  1. private File showMySaveDialog() {
  2.  // TODO Auto-generated method stub
  3.  File file=null;
  4.  try {
  5.   JFileChooser jChooser = new JFileChooser(){
  6.   protected JDialog createDialog(Component parent){
  7.    JDialog dialog = super.createDialog(parent);
  8.    Component contentPane = dialog.getContentPane();
  9.    return dialog;
  10.    }
  11.   };
  12.   FiltreSimple gm = new FiltreSimple("Fichiers GM",".gm" );
  13.   jChooser.addChoosableFileFilter(gm);
  14.   jChooser.setAccessory(new FilePreview(jChooser));
  15.   int returnVal=-1;
  16.   returnVal = jChooser.showSaveDialog(this);
  17.   file = jChooser.getSelectedFile();
  18.   if (returnVal==JFileChooser.APPROVE_OPTION) return jChooser.getSelectedFile();
  19.   else return null;
  20.   } catch (Exception ex) {
  21.    int beta=0;
  22.   }
  23.   return file;
  24. }


 
l'erreur est sur le "file = jChooser.getSelectedFile();"
 
 
alors les reponses pour les deux sont peut etre tres connes, mais je seche depuis un moment deja :/
 
merci :jap:


Message édité par kaillou38 le 26-05-2006 à 12:23:44

---------------
ras
Reply

Marsh Posté le 22-05-2006 à 13:08:37   

Reply

Marsh Posté le 22-05-2006 à 14:47:15    

Ben pour la seconde erreur tu interceptes l'exception que tu as bien analysée, tu crées le fichier, et tu peux faire ta manip [:spamafote]

Reply

Marsh Posté le 22-05-2006 à 18:33:13    

ce que tu me dis, c'est d'essayer de creer mon fichier a la place de la ligne 22?
 
j'ai essayé de mettre ca a la place (eclipse m'a rajouter tout seul le try / catch supplementaire) mais ca fait rien :/
 

Code :
  1. try {
  2.    FileOutputStream fichier = new FileOutputStream(file);
  3.   } catch (FileNotFoundException e) {
  4.    // TODO Auto-generated catch block
  5.    //e.printStackTrace();
  6.   }


---------------
ras
Reply

Marsh Posté le 22-05-2006 à 18:49:03    

bé non, tu fais ton new fileoutputstream seulement si ton fichier n'a pas été trouvé, donc en cas de catch ...

Reply

Marsh Posté le 22-05-2006 à 19:00:20    

Code :
  1. private File showMySaveDialog() {
  2.  // TODO Auto-generated method stub
  3.  File file=null;
  4.  try {
  5.   JFileChooser jChooser = new JFileChooser(){
  6.   protected JDialog createDialog(Component parent){
  7.    JDialog dialog = super.createDialog(parent);
  8.    Component contentPane = dialog.getContentPane();
  9.    return dialog;
  10.    }
  11.   };
  12.   FiltreSimple gm = new FiltreSimple("Fichiers GM",".gm" );
  13.   jChooser.addChoosableFileFilter(gm);
  14.   jChooser.setAccessory(new FilePreview(jChooser));
  15.   int returnVal=-1;
  16.   returnVal = jChooser.showSaveDialog(this);
  17.   file = jChooser.getSelectedFile();
  18.   if (returnVal==JFileChooser.APPROVE_OPTION) return jChooser.getSelectedFile();
  19.   else return null;
  20.   } catch (Exception ex) {
  21.    FileOutputStream fichier = new FileOutputStream(file);
  22.   }
  23.   return file;
  24. }


 
c'est ca que tu me dit de faire?
 
parce que ca me renvoie une erreur qui me dit soit de rajouter le try catch vu au post precedent, soit de rajouter throws IOFILENOTEXIST pour cet methode, celle qui l'appelle, celle qui appelle encore, et apres ca me plante une erreur que je comprend pas :/


---------------
ras
Reply

Marsh Posté le 24-05-2006 à 12:00:41    

Salut,
qd tu fais  

Code :
  1. FileOutputStream fichier = new FileOutputStream(file);


tu dois le mettre dans un try/catch ou déclarer ta méthode avec un throws Exception.
 
Le truc, c'est que tu dois pas avoir peur de rajouter un try/catch dans ton catch
 :hello:


---------------
Voir les RAW sous Android: https://market.android.com/details? [...] .RawVision Blog Photo: http://photouch.me Applications mobiles: http://caketuzz.com Wapcam Project: http://wapcam.mobi
Reply

Marsh Posté le 26-05-2006 à 12:37:25    

bon, j'ai resolu mon proble de bouton, JToggleButton, ca sert a ca :D
 
 
par contre, pour mon probleme d'exception, je dois avouer que je comprend vraiment pas :/
 
meme l'abus de try/catch n'y fait rien
 

Code :
  1. private File showMySaveDialog(FiltreSimple filtre) {
  2.  // TODO Auto-generated method stub
  3.  File fich = null;
  4.  try {
  5.  JFileChooser jChooser = new JFileChooser(){
  6.   protected JDialog createDialog(Component parent){
  7.    JDialog dialog = super.createDialog(parent);
  8.    Component contentPane = dialog.getContentPane();
  9.    return dialog;
  10.   }
  11.  };
  12.  jChooser.addChoosableFileFilter(filtre);
  13.  jChooser.setAccessory(new FilePreview(jChooser));
  14.  int returnVal=-1;
  15.  do {
  16.   try {
  17.   returnVal = jChooser.showSaveDialog(this);
  18.   } catch (Exception e) {
  19.    // TODO Auto-generated catch block
  20.    e.printStackTrace();
  21.   }
  22.  } while (returnVal!=JFileChooser.APPROVE_OPTION);
  23.  FileWriter file=null;
  24.  try {
  25.   file = new FileWriter(jChooser.getSelectedFile());
  26.  } catch (IOException e) {
  27.   // TODO Auto-generated catch block
  28.   e.printStackTrace();
  29.  }
  30.  PrintWriter ecrivain=new PrintWriter(new BufferedWriter(file));
  31.  ecrivain.println("coucou" );
  32.  ecrivain.close();
  33.  fich = jChooser.getSelectedFile();
  34.  //if () return jChooser.getSelectedFile();
  35.  //else return null;
  36.  } catch (Exception e) {
  37.   // TODO Auto-generated catch block
  38.   e.printStackTrace();
  39.  }
  40.  return fich;
  41. }


 
je pense que c'est la methodologie des exceptions que je comprend pas :/


---------------
ras
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed