【发布时间】:2016-12-01 11:11:15
【问题描述】:
我正在开发一个简单的文件阅读器。它读取 .txt 文件,然后格式化输出并将输出显示在 JTextArea 中。由于某种原因,输出无法正确显示。我已经给出了我当前的代码,然后是下面的文本文件内容。
代码
public static JTextArea display = new JTextArea();
public static void main(String[] args) {
// GUI
JFrame frame = new JFrame("Haberdasher");
frame.setSize(450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
JPanel container = new JPanel();
container.setLayout(null);
frame.setContentPane(container);
JScrollPane scroll = new JScrollPane(display);
scroll.setBounds(10, 10, 415, 150);
container.add(scroll);
frame.toFront();
frame.setVisible(true);
// Logic
String path = "src//employees.txt";
boolean endOfFile = false;
String output = "Name" + "\t\t" + "Weekly Sales" + "\t\t" + "Weekly Pay" + "\n";
try {
FileReader fr = new FileReader(path);
BufferedReader br = new BufferedReader(fr);
while (!endOfFile) {
String name = br.readLine();
if(name == null) {
endOfFile = true;
} else {
int sale = Integer.parseInt(br.readLine());
if(name.length() >= 16) {
output += name + "\t" + sale + "\t\t" + "300" + "\n";
} else {
output += name + "\t\t" + sale + "\t\t" + "300" + "\n";
}
}
}
br.close();
System.out.println(output);
display.setText(output);
} catch (IOException e) {
System.out.println(e);
}
}
employees.txt 内容: http://hastebin.com/ijuyedizil.nginx
【问题讨论】:
-
要么不打印全名,要么使用另一个标签
-
您必须根据要打印的字符串的长度来设置要打印的制表符 (\t) 的数量。
-
您的预期输出是什么?对齐问题是问题吗?
-
感谢您的帮助。问题是对齐,抱歉没有指定;我已经添加了预期的输出。
-
我已经编辑了这个问题。现在,控制台中的输出很好,但在 JTextArea 中却不行。
标签: java swing file text jtextarea