上一篇講的如何重新整理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);
}
}
}
到此,結束