我有一个使用jTable的数据库应用程序(使用netbeans),我在jTable中添加了表模型侦听器,所以当我编辑jTable时它也编辑数据库(MySQL)。然而,当用户点击jTable并点击一个按钮时,它会停止工作。我已经意识到,它只停止工作,当我运行“jTable1.setModel(DbUtils.resultSetToTableModel(mySql.UpdateTable()));”更新表格。当我按下运行这条线的按钮时,它停止工作,任何其他按钮或任何其他时间,并且它工作。TableModelListener只有时才有效
更新表:
public ResultSet UpdateTable(){
Connection con = connect();
try{
Statement s = con.createStatement();
ResultSet resultset;
resultset = s.executeQuery("select * from customera");
return resultset;
}
catch(SQLException e){
System.out.println(e.getMessage());
}
return null;
}
}
tablemodellistener类:
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
public class TableActionListener implements TableModelListener{
Rob1 r;
public TableActionListener(){
r = new Rob1();
}
public void tableChanged(TableModelEvent e){
System.out.println("action");
int id = r.getID();
int column = e.getColumn();
int row = e.getFirstRow();
}
}
添加表模型的侦听器,像这样的构造:
jTable1.getModel().addTableModelListener(new TableActionListener());
得到该行点击我已经添加以下代码:
int id;
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
System.out.println(evt.getClickCount());
int row = jTable1.getSelectedRow();
int col = jTable1.getSelectedColumn();
id = (int)jTable1.getModel().getValueAt(row, 0);
}
返回电流id:
public int getID(){
return id;
}
你可以更具体地说明你想要达到什么目的,它是如何失败的? –
setModel之后,侦听器侦听过时的模型,需要将侦听器添加到新模型中。这可能是问题吗? –
你是什么意思“设置模型”? –