gpt4 book ai didi

java - 选择行时出现 ArrayIndexOutOfBoundsException (-1)

转载 作者:行者123 更新时间:2023-11-30 03:07:45 26 4
gpt4 key购买 nike

我正在尝试获取某人在 JTable 中双击的行号。触发器触发,但它认为我没有单击一行。当我检索行号时,它始终为 -1:

informationTable.addMouseListener(new java.awt.event.MouseAdapter() {
@Override
public void mouseClicked(java.awt.event.MouseEvent evt) {
if (evt.getClickCount() == 2) {
int row = informationTable.getSelectedRow();
System.out.println(row); // always -1
informationTable.setValueAt('1', row, MEAL_COL); // fails...
}
}
});

为什么这没有给我正确的行,任何行?

编辑:

为了回答我如何关闭编辑(针对特定列),我重写了 DefaultTableModel 类的 isCellEditable 方法,如下所示:

private class KAMDTM extends DefaultTableModel {
private final boolean[] canEdit = new boolean[] {false, false, false, false, false, false, true};

public KAMDTM(Object[][] data, String[] cols) {
super(data, cols);
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit[columnIndex];
}
}

最佳答案

您或许可以从这篇文章中得到答案:Double click listener on JTable in Java ,看看代码建议使用的第二个答案:

Point p = evt.getPoint();
int row = table.rowAtPoint(p);

关于java - 选择行时出现 ArrayIndexOutOfBoundsException (-1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34320832/

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