java - Search Between 可以隐藏过去的 product_Name 交易
问题描述
//这是我的for循环
DefaultTableModel model =(DefaultTableModel)inventory_Table.getModel();
Object[] row = new Object[12];
for(int i = 0; i < Listass.size(); i++) {
row[1] = Listass.get(i).getType();
row[2] = Listass.get(i).getProduct();
row[3] = Listass.get(i).getPacking();
row[4] = Listass.get(i).getQuantity();
row[5] = Listass.get(i).getAmount();
row[6] = Listass.get(i).getSupplier();
row[7] = Listass.get(i).getPONumber();
row[8] = Listass.get(i).getUnitPrice();
row[9] = Listass.get(i).getTDR();
row[10] = Listass.get(i).getSDR();
row[0] = Listass.get(i).getDate();
row[11] = Listass.get(i).getProductNumber();
model.addRow(row);
}
解决方案
考虑以下几行:
Object[] row = new Object[12];
for(int i = 0; i < Listass.size(); i++) {
...
model.addRow(row);
}
您只需为row
(新数组)分配 1 个值。因此,您实际上是在模型中多次添加相同的数组引用。addRow
不复制数组中的数据 - 它只是存储对它的引用以表示行中的数据。随后的迭代会覆盖该数据,因此所有行最终都会显示最终值。
解决方案是在循环内创建一个新数组:
for(int i = 0; i < Listass.size(); i++) {
Object[] row = new Object[12];
...
model.addRow(row);
}
现在每一行都指向一个不同的数组。
请注意,您发布的代码存在几个造型师问题。我没有在这里更正任何这些,但您应该阅读 Java 样式指南并尝试符合行业中预期的标准。
推荐阅读
- linux - 在目标中构建库以在主机中进行交叉编译
- outlook - 移动到 Exchange 中的文件夹时将电子邮件标记为未读
- java - 使用 jmsTemplate (Spring JMS) 重复调度消息以传递 ActiveMQ
- mysql - SQL Check(汽车租赁)
- r - 使用 r 获取列名并在数据框中的未列出列中分配值
- vue.js - 如何从 vue.config.json 中的外部 config.json 文件设置代理 URL
- vaadin - Vaadin RichTextArea 高度自动调整
- r - 使用在 ArcGIS 中计算的 PCA 在 R 中创建 PCA 图
- r - 使用 R 遍历 URL 层并抓取数据
- javascript - opentok-react-native 订阅者使 android 应用程序崩溃