我有一个包含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);
答案 0 :(得分: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");
}
答案 1 :(得分:1)
textArea.read(new BufferedReader(new FileReader("logsheet.txt"), null));
答案 2 :(得分:0)
以下内容应该可以解决问题:
BufferedReader reader = new BufferedReader(new FileReader("logsheet.txt"));
String line;
while((line = reader.readLine()) != null) {
textArea.append(line).append("\n");
}
reader.close();
在这里,您正在阅读文件的全部内容(因此无论它有多少行),将内容附加到字符串构建器,然后将文本区域设置为字符串构建器的内容。 (记住在完成阅读后关闭阅读器也很重要。)
以上内容只会附加到文本区域。如果要先清除它,请在while循环之前添加textArea.setText("");
。
如果你想确保只读取前10行,添加一个计数器,在while循环的每次迭代时递增它,然后退出,如果它是10或更高(我将把它留作实施练习如果你需要它!)