1

我有一个包含 10 行信息的文本文件。如何在 JTextArea 中复制粘贴该信息?

public void createPage4()
    {
    panel4 = new JPanel();
    panel4.setLayout( new BorderLayout() );

    BufferedReader log=null;

        try {


        FileReader logg =new FileReader("logsheet.txt");
            log = new BufferedReader(logg); 

        textArea = new JTextArea("how do I get all the content of logsheet, I can get it on the command window as shown below");




        for (int x = 0 ; x<10; x++){

            System.out.println(log.readLine());

             }


             panel4.add(textArea);
4

3 回答 3

1

您需要使用Append()将您读取的每一行复制到JTextArea组件的末尾。

附加

public void append(String str) 将给定的文本附加到文档的末尾。如果模型为 null 或字符串为 null 或为空,则不执行任何操作。此方法是线程安全的,尽管大多数 Swing 方法不是。请参阅如何使用线程了解更多信息。

参数:str - 要插入的文本另见:insert(java.lang.String, int)

您的 for 循环将变为:

for (int x = 0 ; x<10; x++){
    textArea.append(log.readLine() + "\n");
}
于 2011-01-28T01:09:28.177 回答
1
textArea.read(new BufferedReader(new FileReader("logsheet.txt"), null));
于 2011-01-28T01:36:44.467 回答
0

像下面这样的东西应该可以解决问题:

BufferedReader reader = new BufferedReader(new FileReader("logsheet.txt"));
String line;
while((line = reader.readLine()) != null) {
    textArea.append(line).append("\n");
}
reader.close();

在这里,您正在读取文件的全部内容(因此不管它有多少行),将内容附加到字符串构建器,然后将文本区域设置为字符串构建器的内容。(记住在完成阅读器后关闭阅读器也很重要。)

以上将仅附加到文本区域。如果要先清除它,textArea.setText("");请在 while 循环之前添加。

如果您想确保只读取前 10 行,请添加一个计数器,在 while 循环的每次迭代中递增它,然后如果它是 10 或更高则退出(如果您需要它,我将把它作为实现练习! )

于 2011-01-28T01:09:37.613 回答