我正在做一个游戏。在此部分中,将打开一个新窗口以显示游戏说明。唯一的问题是,当有超过20行时,JTextArea只显示.txt文件的一行。我是新手,所以我不确定我错过了什么。谢谢!
var image = document.getElementById('image');
image.addEventListener('change', function (e) {
var img = e.target.files[0];
localStorage.setItem('img', JSON.stringify(img))
var getImg = localStorage.getItem('img');
console.log(JSON.parse(getImg));
});
答案 0 :(得分:3)
BufferedReader#readLine
只读取下一行(如果没有更多行要读取,则返回null
)
如果您仔细查看JavaDoc,您会发现JTextArea
从read(Reader, Object)
继承了JTextComponent
,这将解决(大部分)您的问题
更多内容
read = new JTextArea();
try (Reader reader = new BufferedReader(new FileReader("instructions.txt"))) {
read.read(reader, null);
} catch (IOException exception) {
exception.printStackTrace();
}
scroll = new JScrollPane(read);
read.setFont(new Font("Comic Sans MS", Font.BOLD, 16)); // change font
read.setEditable(false);
add(read);
可能会达到您想要做的目标
此外,您可能需要致电
read.setLineWrap(true);
read.setWrapStyleWord(true);
如果单词超出区域的可见边界,则允许自动换行。
答案 1 :(得分:-1)
您只从文件中读取一行。请尝试使用此方法来加载整个文件。
List<String> lines;
try {
lines = Files.readAllLines();
} catch (IOException ex) {
ex.printStackTrace();
}
StringBuilder text = new StringBuilder();
for (String line : lines) {
text.append(line);
}
read = new JTextArea(text.toString());