gpt4 book ai didi

java - jTable索引错误

转载 作者:行者123 更新时间:2023-11-29 03:01:23 25 4
gpt4 key购买 nike

当我在 jtable 中选择行时,它总是返回 -1 作为表行索引。

这是我将数据填充到 jtable 的方式:

private void addResultToRecTable(DefaultTableModel dtm, ArrayList<RecipeModule> al) {

if (al != null) {
int rowCount = dtm.getRowCount();
for (int i = 0; i < rowCount; i++) {
dtm.removeRow(0);
}

for (int i = 0; i < al.size(); i++) {
String[] recArray = {al.get(i).getRecID(), al.get(i).getRecName(), al.get(i).getRecCategory(), al.get(i).getRecQty(), al.get(i).getRecUnit()};
dtm.addRow(recArray);

}
}

这就是我将数据传递给 addResultToRecTable() 方法的方式:

ArrayList<RecipeModule> al = RecipeController.searchRecipes(txtRepSearchName.getText(), txtRecSearchCate.getText());
addResultToRecTable(recDefaultTableModel, al);

在我将数据填充到表格之后。我在表中选择了一行并打印出选定的行索引。然后我得到了这个错误。

private void tableRecSearchKeyReleased(java.awt.event.KeyEvent evt) {   
try{
int selectedRow = tableRecIngredients.getSelectedRow();
System.out.println(selectedRow);
}

但是我得到这个错误:

java.lang.ArrayIndexOutOfBoundsException: -1

我不确定是什么问题。有什么建议吗?

最佳答案

private void tableRecSearchKeyReleased(java.awt.event.KeyEvent evt)

我不知道那个事件是什么。可能行选择还没有完成。

如果您想知道行选择何时更改,请将 ListSelectionListener 添加到表中。

table.getSelectionModel().addListSelectionListener(...);

阅读 How to Write a List Selection Listener 上的 Swing 教程部分获取更多信息和示例。

    //int rowCount = dtm.getRowCount();
//for (int i = 0; i < rowCount; i++) {
// dtm.removeRow(0);
//}

要从表模型中删除所有行,您可以使用:

dtm.setRowCount(0);

关于java - jTable索引错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34641223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com