2016-08-09 15 views
1

メソッドとクラスを使用してGUIを作成しています。ユーザが選択してファイルを選択できるボタンを作成しようとしています。ファイルは、ファイルに格納されているものをtextarea/textfield/JLabelに読み込みます。誰も私のコードで私を助けることができる、私はファイルを選択するボタンを選択することができますし、GUIにテキストを読み取るので、それをコーディングする方法がわからないです。ファイルを選択してテキストをGUI(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

可能な重複を行ったボタンに

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

をリスナーを追加[私はどのようにコンシューマからJava文字列を作成するファイルのテント?](http://stackoverflow.com/questions/326390/how-do-i-create-a-java-string-from-the-contents-of-a-file) – VGR

答えて

1

次のスニペットは、役立つかもしれない:

は、行動規範は、の

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

背景スレッド、例えば'SwingWorker'または' ExecutorService'を使用して、UIが大きなファイルでハングしないようにします。 –

関連する問題