【发布时间】:2021-06-24 10:34:14
【问题描述】:
我创建了一个图书馆类,其中有一个名为 booklist 的图书 ArrayList。
public class Library {
//Fields
String libraryName;
ArrayList<Book> booklist;
//Constructor
public Library() {
this.libraryName = "Mt Baker";
}
public Library(String libraryName) {
this.libraryName = libraryName;
this.booklist = new ArrayList<Book>();
我创建了一个打印方法,可以很好地将 ArrayList 打印到控制台。
public void printBooks() {
for (Book s : booklist)
System.out.println("Title: \t" + s.getTitle() + "\t\tAuthor: " + s.getAuthor() +
"\tYear: " + s.getYear() + "\tISBN :" + s.getISBN());
}
我不知道如何编写 actionPerformed 以允许此方法将 ArrayList 打印到 JTextArea 中。我尝试了各种迭代:-
String op = evt.getActionCommand();
Library x = new Library();
ArrayList <Book> y = new ArrayList<>();
if (op.equals("Show Library")) {
GUI.this.libraryResult.setText(y.printBooks().toString());
}
libraryResult 是 JTextField,“显示库”是 JButton 侦听器事件。
此站点上的其他建议建议使用 append 和 toString,但我没有设法使它们起作用。非常感谢任何建议。
【问题讨论】:
-
它对你有用吗(我的回答)?
-
此站点上的其他建议建议使用 append - 是的,您将使用 JTextArea 的
append(..)方法在遍历 ArrayList 时添加文本。但是,忘记 ArrayList。首先创建一个简单的 GUI,其中包含一个 JFrame、一个 JTextArea 和一个 JButton,以及一个包含一些文本字符串的数组。了解如何为按钮编写一个 ActionListener 以将 Array 中的文本添加到文本区域。一旦你理解了这个基本概念,它将分别用 ArrayList 替换 Array。如果您有问题,可以使用这种方法发布您的minimal reproducible example。 -
不,我还在尝试。此行不起作用:
-
“这行不行:” 什么行?提示:添加@IntoVoid(或重要的
@)以通知该人有新评论。 -
究竟是什么不起作用。动作侦听器或 getAsString 方法(在我的回答中)。或者文字的设置。您可以使用调试器进行查找,例如在 IntelliJ 中
标签: java swing arraylist jbutton jtextfield