上一篇讲的如何刷新JTable的数据,这次讲一下,如何取消Jtable默认双击编辑的效果。
百度已经有很多了,结合我自己的例子,直接上图.
想要的效果是双击该jtabl,弹出一个Jframe,可以进行操作。
思路:取消Jtable的双击修改的默认情况,改为取得单元格的内容。
1、自定义Jtable
class MyTableModel extends DefaultTableModel{
/**
* 自创表格类
*/
private static final long serialVersionUID = 1L;
public MyTableModel(Object[][] data, Object[] columnNames){
super(data, columnNames);//这里一定要覆盖父类的构造方法,否则不能实例myTableModel
}
public boolean isCellEditable(int row, int column){
return false;//父类的方法里面是 return true的,所以就可以编辑了~~~
}
}
2、获得Jtabl的监听,取得内容
jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTable1MouseClicked(evt);
}
});添加Jtable的mouseListener
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {//双击单元格触发的效果
if(evt.getClickCount()==2) { 双击
int row = jTable1.getSelectedRow();//获得选中的行
DBCon dbCon = new DBCon();
data = dbCon.getAllUserInfo();//重新载入数据,免得越界
String uname = (String) data[row][1];//用户名
if(userSession!=null) {
new ModifyUserFrame(userSession,uname,jTable1).setVisible(true);
}else {
JOptionPane.showMessageDialog(this, "无权限,请退出软件重新登录", "提示", JOptionPane.ERROR_MESSAGE);
}
}
}
到此,结束