2017-10-31 6 views
0

私はJavaを学び始めており、JFileChooserで開いているファイルの内容をJTextFieldで表示する方法が分かりませんJava:JTileFieldで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

ファイルには通常、1行以上含まれています。 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を設定する必要があります。

これはさまざまな方法で実行できます。ここでは1です:

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

たとえば、あなたはすべてのコンテンツを表示するためのJTextFieldにすべて一緒とのsetText参加することができますリストを返します。

提案:代わりにTextArea(複数の行を表示)を使用することをお勧めします。参照:Loading a text file into a text area

関連する問題