2016-06-22 25 views
-2

私はメモ帳のエスク機能を持つプログラムを持っています。私はそれを開くと、テキストファイルから保存されたテキストをテキスト領域に自動的に読み込むようにしたい。テキストをテキストエリアに自動的に読み込む方法

私は2つのクラスを持っています。 Writerクラス(保存されたテキストが表示される場所)と実際にテキストファイルからテキストをインポートするLoadクラスです。

ライタークラス:

public class Writer extends Application { 
private FlowPane notepadLayout = new FlowPane(Orientation.VERTICAL); 
private Scene notepadScene = new Scene(notepadLayout,600,300); 
private TextArea inputArea = new TextArea(); 

private void notepadSetup(){ 
Text titleText = new Text("Notepad"); 
notepadLayout.getChildren().add(titleText); 
notepadLayout.getChildren().add(inputArea); 
} 

public void start(Stage primaryStage) throws Exception { 
notepadSetup(); 

Load.loadOperation(); 

primaryStage.setTitle("ROBOT V1!"); 
primaryStage.setScene(notepadScene); 
primaryStage.show(); 

したがって、上記のクラスは、テキスト領域を有しています。私がしたいのは、上記のテキストエリアにテキストファイルの情報を読み込むために、以下のクラスを使用することです。

public class Load { 
private static String line; 
static ArrayList<String> x = new ArrayList<>(); 

public static void loadOperation(){ 
    try{ 
     BufferedReader br = new BufferedReader (new FileReader("Notes.txt")); 
     line = br.readLine(); 

     while(line != null){ 
      x.add(line);     
      line = br.readLine(); 
     } 
    }catch(Exception e){ 

    } 
    System.out.println(x); 
} 

行Load.loadOperationは、テキストファイルの内容を出力します。テキスト領域にどのようにロードさせるのですか?また、書式設定(改行)を保存する必要があります。

+0

あなたのコードはコンパイルさえないでしょうか。 –

+0

@James_D現在は – bob9123

答えて

2

:だからあなたは便利なinputAreaへの参照を持っていると仮定して、あなたは(空の)コントロールにそれを追加することができます。 (それはあまりにも多くの現代のJavaを使用するように、私はそれを更新しました。)

import java.io.IOException; 
import java.nio.file.Files; 
import java.nio.file.Paths; 
import java.util.stream.Collectors; 

public class Load { 

    public static String loadOperation() throws IOException { 
      return Files.lines(Paths.get("Notes.txt")) 
       .collect(Collectors.joining("\n")); 

    } 
} 

を次に、あなただけの

try { 
    inputArea.setText(Load.loadOperation()); 
} catch (IOException exc) { 
    exc.printStackTrace(); 
} 
+0

これは機能しました。ありがとう。 – bob9123

+0

保存クラスをアップロードして、それが最新かつ効率的かどうかをチェックできますか? – bob9123

+0

いいえ、使用したメソッドのAPIドキュメントを読み、同じクラスの他の同様のメソッドを見てください。 –

-1

ファイルからテキストを読み終えたら、それをTextAreaオブジェクトに追加する必要があります。それは文字列を返すようにするだけの方法を変更

for (int i = 0; i < x.length; i++) { 
    inputArea.appendText(x.get(i)); 
} 

https://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TextArea.html

+0

です。メソッドは['appendText(...)'](http://docs.oracle.com/javase/8/javafx/api/javafx/scene/control/TextInputControl.html#appendText -java.lang.String-)ではなく、 'append(...)'ではありません。 –

+0

私はこれを試すつもりです – bob9123

+0

@James_D APIドキュメントでは、両方をリストアップし、 'appendText(...)'は非推奨です。 –

関連する問題