java读取具有多行的文件并将其输出到JLabel
我正在从一个文件中读取大量的文本行,我希望我的程序读取该文件中的所有行,并将它们以相同的格式输出到JLabel或任何可以工作的文件中
public String readSoldTo() {
String file = "/Users/tylerbull/Documents/JUUL/Sold To/soldTo.txt";
String data;
try{
BufferedReader br = new BufferedReader(new FileReader(file));
while ((data = br.readLine()) != null) {
System.out.println(data);
return data;
}
br.close();
}catch(Exception e) {
}
return file;
}
# 1 楼答案
JLabel用于显示一行文本。是的,您可以对其进行修改以显示更多内容,但这是一个混乱的问题,并且常常会在您的代码中导致将来的问题。相反,我建议您将文本显示在JTextArea中,您可以通过将背景色设为空来删除边框,使其看起来像JLabel。但是,如果将其添加到JScrollPane,您将看到滚动条(如果合适)和滚动窗格的边框,这可能是一个问题。我还将使JTextArea不可聚焦和不可编辑,这样它的行为更像一个标签,而不像接受用户交互的文本组件
此外,JTextComponents(如JTextFields)具有允许您向其传递读取器的机制,以便它可以参与文本文件的读取,并在需要时保留换行符。有关这方面的更多信息,请参阅其read method API entry。和往常一样,注意遵守Swing线程规则,在后台线程中执行文本I/O,并在Swing事件线程上执行所有Swing变异调用
你的代码也让我有些担心:
例如: