一連の命令(変数、条件、ジャンプなどを含む)を受け取り、それらを評価する宿題として、単純なコンパイラーを作成するように割り当てられました。これはすでに完了していますが、プログラムをもう少し…「光沢のある」ものにし、ユーザーの快適さのために、テキストファイルから命令をロードする機能を追加したいと思いました。しかし、JTextArea
'sappend ()
メソッドはまったく何もしないので、私を本当に好きではないようです。関連するコードは次のとおりです。
BufferedReader bufferedReader;
File file;
FileDialog fileDialog = new FileDialog (new Frame (), "Open File", FileDialog.LOAD);
String line;
fileDialog.setVisible (true);
if (fileDialog.getFile () != null) {
file = new File (fileDialog.getDirectory () + fileDialog.getFile ());
input.setText (""); // delete old first
try {
bufferedReader = new BufferedReader (new FileReader (file));
line = bufferedReader.readLine ();
while (line != null) {
input.append (line);
System.out.println (line);
line = bufferedReader.readLine ();
}
} catch (IOException ioe) {
ioe.printStackTrace ();
}
}
( Appleの公式推奨事項に見られるように、Macでは見栄えが良いため、SwingのJFileChooserの代わりにAwtのFileDialogを使用しています。)
このinput
コードで使用されている変数は、JTextAreaインスタンスを指しています。面白いことに、ループSystem.out.println ()
内の呼び出しのおかげでファイルの内容が標準出力に書き込まれているのを見ることができるので、ファイル読み取り部分は問題なく機能している必要があります。while
ただし、には何も表示されませんJTextArea
。ここでStackOverflowで見つけた既存のソリューションをすべて試しました。これには、メソッドとメソッドの呼び出しが含まrepaint ()
れrevalidate ()
ますupdateUI ()
。
私は何が欠けていますか?