我正在构建一个简单的程序,我在Jtable中预先填写了名称,作者,价格的书籍,以便我可以在列表中显示它们。
最初我创建了2d数组,它运行正常。
但现在我想让我的程序在该列表中动态添加或删除。
但是数组不能这样做,这是最好的方法。用例子会很好
答案 0 :(得分:1)
您可以使用通用ArrayList。
如果您的图书信息大小不变,则可以创建ArrayList
个数组。以下是简单String
数组的示例,如果这是您使用的容器,请将其更改为JTable
。
private ArrayList<String[]> books = new ArrayList<String[]>();
您不必担心使用初始大小初始化数组列表,例如数组。
String[] bookInfo1 = new String[3];
bookInfo1[0] = "Adam Smith";
bookInfo1[1] = "Some Title";
bookInfo1[2] = "1981";
books.add(bookInfo1);
答案 1 :(得分:1)
在Jtable中
使用DefaultTableModel。您可以使用addRow(...)方法动态添加行。
或者,如果您要创建要在JTable中显示的“预订”对象,则可以使用Bean Table Model。
答案 2 :(得分:1)
我个人建议您定义自己的TableModel接口实现(可能是通过子类化AbstractTableModel)。然后,正如Andrezj建议的那样,您可以在内部使用ArrayList来保存数据。使用JTable
查看this tutorial。它的功能更多,但它可以让您更好地控制数据。
如果您不想这样做,那么您可以使用DefaultTableModel,这允许您add rows dynamically,但它不是类型安全的,如果您使用{{1},则不是线程安全的提供数据。事实上,我不确定当您以Vector
的形式提供行时会发生什么,然后在将Vector
添加到表后将其更改。如果Vector
使其拥有(深?)副本,那么它可能不是问题,但我不知道是否这样做。也许有人知道可以发表评论