2016-08-09 2 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가 큰 파일에 걸리지 않습니다. –

관련 문제