问题在于,即使我将单元格值更改为与更改相同的精确值。因此,例如,如果我双击一个单元格并且不改变其值,我的程序就会将其写入服务器。
如何才能使仅更改其值的单元格,例如(x -> y)
写入服务器。 (x -> x)
什么都不做。
以下代码:
Misc_Table.getModel().addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
int row = e.getFirstRow();
int col = e.getColumn();
Doo.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
try{
Object value = model.getValueAt(row, col);
int selected = (int) Functions_ComboBox.getSelectedIndex();
if(selected == 0){
String val = (String) value;
int int_Val = Integer.parseInt(val);
BackEnd.WriteMultiple_16Bit(unitID, row, int_Val , 1);
}
} catch (NumberFormatException e1) {
JOptionPane.showMessageDialog(MISC,"Wrong number format.");
} catch (Exception e2) {
}
}
});
}
});
答案 0 :(得分:1)
您可以使用Table Cell Listener。
TableCellListener
取代了TableModelListener,只会在数据实际更改时生成事件,而不会在编辑器停止时生成事件。您只需提供在数据更改时调用的Action
。