2017-06-26 3 views
-1

J'essaie de créer un programme qui demande des informations à l'utilisateur puis, quand il clique sur Enregistrer, les zones de texte et les étiquettes sont enregistrées dans un fichier pour pouvoir être partagées. Cela pourrait être n'importe quel type de fichier si nécessaire. Les informations se trouvent dans un volet à onglets dans un JFrame. Voici ma méthode de sauvegarde actuelle.Comment enregistrer le contenu de JFrame dans un fichier

FileFilter ft = new FileNameExtensionFilter("Text Files", "txt", "jpg","png", "jpeg"); 
    db.addChoosableFileFilter(ft); 
    int returnVal = db.showSaveDialog(this); 

    if (returnVal == javax.swing.JFileChooser.APPROVE_OPTION) { 
     java.io.File saved_file = db.getSelectedFile(); 
     String file_name = saved_file.toString(); 

     try { 
      WriteFile data = new WriteFile(file_name, false); 
      String allText = JFrame.toString(); //Line im having trouble with 
      data.writeToFile(allText); 
     } catch (java.io.IOException e) { 
      System.out.println(e.getMessage()); 
     } 
    } 
+0

Etes-vous en train d'essayer de sauvegarder le JFrame de manière à ce qu'il puisse être reconstruit par un autre programme? Je ne pense pas que vous puissiez le faire de cette façon, je suppose que cette ligne enregistre uniquement la représentation du texte de l'instance. Si vous voulez enregistrer et reconstruire un JFrame, vous devez enregistrer les données utilisées (dans les étiquettes et les boîtes) et écrire du code pour analyser et reconstruire à partir des données sauvegardées. – StaticShadow

+0

C'est pourquoi vous devriez construire le modèle logique de votre application avant de lui ajouter une interface graphique. – ControlAltDel

+0

Post [mcve] de votre 'JFrame' – c0der

Répondre

0

JFrame.toString vous donnera pas un Etat que vous souhaitez enregistrer.

La bonne approche consiste à extraire chaque valeur des zones de texte et à sauvegarder/recharger manuellement dans un fichier.

Une autre approche que vous pouvez essayer consiste à sérialiser l'intégralité de JFrame dans un fichier. Regardez ce JavaDoc pour plus d'informations.

+0

Je craignais de devoir le faire manuellement. Je vais regarder dans le document Java si. Je vous remercie. –