Java Swing JTextArea无法正常工作

时间:2017-01-20 05:21:19

标签: java swing jtextarea

我正在做一个游戏。在此部分中,将打开一个新窗口以显示游戏说明。唯一的问题是,当有超过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));

    }); 

2 个答案:

答案 0 :(得分:3)

BufferedReader#readLine只读取下一行(如果没有更多行要读取,则返回null

如果您仔细查看JavaDoc,您会发现JTextArearead(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());