我有一个可滚动的 JTextArea,它显示来自对象 ArrayList 的输出。在将每个元素附加到一行之后,它会转到下一行以附加来自下一个元素的信息。但是,我的输出看起来杂乱无章。无论每个元素的长度如何,我都希望每个属性都能相互对齐。我尝试使用循环在每个属性之间创建偶数个空格,但它们仍然没有正确排列。
这是将字符串从对象附加到 JTextArea 的函数
public static void appendOutputForTextArea(List<Book> catalog) {
String output = "";
mainFrame.displayArea.setText("");
int titleCol = 50;
int authorCol = 50;
int isbnCol = 50;
for(int i=0; i < catalog.size(); i++) {
output += catalog.get(i).getTitle();
for(int k=catalog.get(i).getTitle().length(); k < titleCol; k++) {
output += " "; // create enough whitespace before next element
}
output += catalog.get(i).getAuthor();
for(int k=catalog.get(i).getAuthor().length(); k < authorCol; k++) {
output += " ";
}
output += catalog.get(i).getIsbn();
for(int k=catalog.get(i).getIsbn().length(); k < isbnCol; k++) {
output += " ";
}
output += catalog.get(i).getQuantity();
output += "\n";
}
mainFrame.displayArea.append(output);
}
这是文本区域的样子。