2016-08-09 3 views
1

Je crée une interface graphique en utilisant des méthodes et des classes, et j'essaie de créer un bouton où l'utilisateur peut le sélectionner et ensuite choisir un fichier. Le fichier lira ensuite ce qui est stocké dans le fichier dans un textarea/textfield/JLabel. Quelqu'un peut-il m'aider avec mon code, je ne suis pas sûr de savoir comment le coder afin que je puisse sélectionner le bouton pour choisir un fichier et il lit ensuite le texte dans l'interface graphique.Bouton pour sélectionner le fichier et lire le texte dans l'interface graphique (JTextArea)

public void addLoadFile(){ 
     btnLoadFile = new JButton("Load file of Books"); 
     btnLoadFile.setBounds(415, 30, 150, 20); 
     btnLoadFile.addActionListener(this); 
     panelLoadFile.add(btnLoadFile); 

     textArea = new JTextArea(); 


    } 

    class this implements ActionListener { 
     @Override 
     JFileChooser fileChooser = new JFileChooser(); 
     int ret = fileChooser.showOpenDialog(this); 
     if(ret== JFileChooser.APPROVE_OPTION) 
     { 
      File f= fileChooser.getSelectedFile(); 
      try 
      { 
       FileReader r=new FileReader(f); 
       area.read(4,""); 
      } 
      catch (Exception ee) 
     } 
    System.out.prinkln(""); 
    } 
+1

double possible de [Comment puis-je créer une chaîne Java à partir du con tentes d'un fichier?] (http://stackoverflow.com/questions/326390/how-do-i-create-a-java-string-from-the-contents-of-a-file) – VGR

Répondre

1

L'extrait suivant pourrait aider:

Ajouter Listener Button

jButton1.addActionListener(new java.awt.event.ActionListener() { 
     public void actionPerformed(java.awt.event.ActionEvent evt) { 
      jButton1ActionPerformed(evt); 
     } 
    }); 

Code pour l'action effectuée

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
    JFileChooser fileChooser = new JFileChooser(); 
    FileNameExtensionFilter filter = new FileNameExtensionFilter(
      "Text Files(*.txt)", "txt"); 
    fileChooser.setFileFilter(filter); 
    fileChooser.setCurrentDirectory(new File(System 
      .getProperty("user.home"))); 
    int result = fileChooser.showOpenDialog(this); 
    if (result == JFileChooser.APPROVE_OPTION) { 
     File selectedFile = fileChooser.getSelectedFile(); 
     BufferedReader br = null; 
     try { 
      br = new BufferedReader(new FileReader(selectedFile)); 
      StringBuilder sb = new StringBuilder(); 
      String line = br.readLine(); 

      while (line != null) { 
       sb.append(line); 
       sb.append(System.lineSeparator()); 
       line = br.readLine(); 
      } 
      String all = sb.toString(); 
      jTextArea1.setText(all); 
     }catch(Exception e){ 
      e.printStackTrace(); 
     }finally { 
      try { 
       br.close(); 
      } catch (IOException ex) { 
       Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex); 
      } 
     } 
    } 
} 
+0

Essayez de courir dans dans un fil d'arrière-plan, par exemple avec 'SwingWorker' ou' ExecutorService' afin que l'interface utilisateur ne se bloque pas avec des fichiers volumineux. –