2016-03-15 81 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