2016-03-15 112 views
0

如何使JTable的單元格不可編輯,但可以選擇。 下面的代碼是JTable的列值........使jtable不可編輯

DefaultTableModel dtmPrefix = new DefaultTableModel(); 
    dtmPrefix.addColumn("Code"); 
    dtmPrefix.addColumn("Name"); 
    dtmPrefix.addColumn("Quantity"); 
    dtmPrefix.addColumn("Price"); 
    try { 
     Connection conn= Dbutil.getlocalConnection(); 
     String queryPrefix = "SELECT * FROM product_master"; 
     st = conn.createStatement(); 
     rs = st.executeQuery(queryPrefix); 
     while(rs.next()){ 
      dtmPrefix.addRow(new Object[]{ 
       rs.getString(2) , 
       rs.getString(3), 
       rs.getString(5) , 
       rs.getString(6), 
      }); 
      jTable1.setModel(dtmPrefix); 
      jTable1.setEditingColumn(false); 
      jTable1.editingCanceled(e); 
     } 
    } catch ( Exception ex) { 
    } 

回答

2

覆蓋你DefaultTableModelisCellEditable(...)方法返回false

jTable1.setEditingColumn(false); 
jTable1.editingCanceled(e); 

上述聲明不做任何事情。他們基本上只是改變表的屬性,說目前沒有編輯cedll,但它並不妨礙一個單元格被編輯。所以你可以擺脫這些陳述。

+0

plz exaplain用代碼 –

+1

清楚說明。你不明白該解決方案的哪一部分?清楚地解釋你對這個建議的困惑。發佈你的重寫方法的嘗試,如果它仍然不起作用,我們可以幫助解決它,但是我們不在這裏爲你寫代碼。 – camickr