皆さん、こんにちは
ユーザーが編集できない Swing コンポーネントに 15 行の ASCII ファイルを表示する必要があるアプリケーションがあります。
以下は、ASCIIファイルをバイト単位で読み取る私のコードです。Swing では JTextArea.setEditable(false) が適切であると説明してくれた有益なコメント作成者に感謝します。
ただし、ASCII ファイルをまったく異なるものに個人的に作成した場合、私のコードは数字の文字列を表示するだけです。私が間違っていることと、ASCII文字自体を表示する方法を知っている人はいますか?
import java.io.*;
import javax.swing.*;
public class LoadMap extends JFrame {
public LoadMap() throws IOException {
FileInputStream fIn = new FileInputStream("map.srn");
BufferedReader rd = new BufferedReader(new InputStreamReader(fIn, "US-ASCII"));
String map = "";
JTextArea mapArea = new JTextArea(15, 50);
try {
int c;
while ((c = rd.read()) != -1) {
map= map + c;
}
} finally {
if (rd != null) {
rd.close();
}
}
mapArea.setText(map);
mapArea.setEditable(false);
add(mapArea);
pack();
setVisible(true);
}
}