gpt4 book ai didi

java - 当我更改 JTable 列中的单元格时如何使用 setValueAt

转载 作者:行者123 更新时间:2023-11-29 04:42:17 25 4
gpt4 key购买 nike

我有包含行和列的 JTable,当我编辑索引为 4 的列中的任何单元格时,我需要 -> 应该更改同一行中的“VALUE”,但索引为 5 的下一列。我有下一个代码,但它不起作用

table.getModel().addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
if (table.getSelectedRow()>=0) {
try {
if (table.getSelectedColumn()==4){

table.setValueAt("VALUE", 0, 0);
}
} catch (ArrayIndexOutOfBoundsException ee){
ee.printStackTrace();
}
}
}
});

它有一个错误:

at MainFrame$3.tableChanged(MainFrame.java:188) atjavax.swing.table.AbstractTableModel.fireTableChanged(Unknown Source)at javax.swing.table.AbstractTableModel.fireTableCellUpdated(UnknownSource) at javax.swing.table.DefaultTableModel.setValueAt(UnknownSource) at javax.swing.JTable.setValueAt(Unknown Source)

因为它有无限循环。请帮助我。

My Table

最佳答案

对我来说,你的错误与你依赖所选列的事实有关,你应该像这样依赖事件本身提供的内容:

table.getModel().addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
if (e.getType() == TableModelEvent.UPDATE) {
final int row = e.getFirstRow();
final int column = e.getColumn();
if (column == 4) {
table.setValueAt("VALUE", row, column + 1);
}
}
}
});

关于java - 当我更改 JTable 列中的单元格时如何使用 setValueAt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38696284/

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