2017-10-31 3 views
0

자바를 배우기 시작했고 JFileChooser가 열어 준 주어진 파일의 내용을 JTextField에 표시하는 방법을 모르겠습니다.Java : JTextField에서 JFileChooser가 연 파일의 내용을 표시하는 방법은 무엇입니까?

이것은 지금까지 작성한 코드입니다.

내 프로그램을 더 잘 이해하기 위해 일부 가져 오기 및 코드를 삭제했습니다.

public class Afvink6 extends JFrame implements ActionListener { 

private JLabel bestandnaam; 
private JTextField bestand; 
private JButton blader; 
private JButton analyseer; 
private JLabel informatie; 
private JTextArea textarea; 
private JLabel naampercentage; 
private JPanel percentages; 
private PrintWriter outFile; 
private JFileChooser fileChooser; 
private int reply; 




@Override 
public void actionPerformed(ActionEvent event) { 

    if(event.getSource() == blader){ 
     fileChooser = new JFileChooser(); 
     reply = fileChooser.showOpenDialog(this); 
     if (reply == JFileChooser.APPROVE_OPTION) { 
      File selectedFile = fileChooser.getSelectedFile(); 
      bestand.setText(selectedFile.getAbsolutePath()); 
     } 
    } 

    if(event.getSource() ==analyseer){ 

누군가 나를 도울 수 있기를 바랍니다.

+0

파일에는 일반적으로 한 줄 이상 포함됩니다. JTextField는 여러 줄의 텍스트를 표시하는 데 가장 좋은 구성 요소가 아닙니다. JTextArea를 사용하는 것이 좋습니다. 어쨌든 https://docs.oracle.com/javase/8/docs/api/javax/swing/text/JTextComponent.html#read-java.io.Reader-java.lang.Object-, https : // docs .oracle.com/javase/tutorial/essential/io/charstreams.html –

답변

1

File.getAbsolutePath()는 경로 이름 만 반환합니다. 파일의 실제 내용으로 setText를 사용해야 할 것입니다.

다양한 방법으로이 작업을 수행 할 수 있습니다. 여기에 하나입니다

java.nio.file.Files.readAllLines(selectedFile.toPath(), Charset.defaultCharset()); 

예를 들어, 당신은 모든 콘텐츠를 표시 할 JTextField를에 모두 함께와의 setText에 가입 할 수있는 목록을 반환합니다.

제안 : 대신 TextArea (여러 줄 표시)를 사용할 수 있습니다. 참조 : Loading a text file into a text area

관련 문제