如何让Jtable不可编辑?(
生活随笔
收集整理的這篇文章主要介紹了
如何让Jtable不可编辑?(
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Java GUI編程,從mysql中獲取的數(shù)據(jù)需要放到JTable中!如何控制JTable各行各列能被選擇,但是單元格中的內(nèi)容不被修改?
???? 昨天晚上仔細(xì)研究了一下,發(fā)現(xiàn)針對(duì)此問題,網(wǎng)上有很多回答有不當(dāng)之處,估計(jì)大多是copy來copy去,自己并沒有進(jìn)行測(cè)試!
??? JTable類下有一個(gè)子類:DefaultTableModel。
??? DefaultTableModel類有一個(gè)方法:isCellEditable,該方法可使JTable能被選但不能被編輯。具體示例如下:
???? static DefaultTableModel tableModel;
???? ?static JTable jTable; ???? tableModel = new DefaultTableModel();?
????? jTable=new JTable(tableModel){
???????????? public boolean isCellEditable(int row, int column) ???????????????? { ??????????????????????????? return false;}//表格不允許被編輯 ???????????????? }
????? };? ???? 這個(gè)代碼是使整個(gè)JTable不可編輯。如果控制row和column的值,可以控制任何一個(gè)單元格可編輯或不可編輯。???? ??? 網(wǎng)上很多回答的主要有兩種錯(cuò)誤: 1、建議直接使用JTable的方法 setEnabled(false), 例如:jTable.setEnabled(false),但是這種方法只是使jTable失效,即讓jTable只能看,不能做其他任何操作。 2、在定義DefaultTableModel類時(shí)使用isCellEditable方法。 ??? 例如:tableModel = new DefaultTableModel(){public boolean isCellEditable(int row, int column) {return false;}};? ??? 其實(shí)這是錯(cuò)誤的,雖然我剛開始也是這么認(rèn)為的。 ??? 這樣使用isCellEditable沒有作用,必須在定義JTable類時(shí)使用,例如正文中的正確代碼! ??? 為什么會(huì)這樣?難道JTable本身也有isCellEditable方法嗎? ??? 請(qǐng)哪位朋友告訴我?謝謝啊!
???? ?static JTable jTable; ???? tableModel = new DefaultTableModel();?
????? jTable=new JTable(tableModel){
???????????? public boolean isCellEditable(int row, int column) ???????????????? { ??????????????????????????? return false;}//表格不允許被編輯 ???????????????? }
????? };? ???? 這個(gè)代碼是使整個(gè)JTable不可編輯。如果控制row和column的值,可以控制任何一個(gè)單元格可編輯或不可編輯。???? ??? 網(wǎng)上很多回答的主要有兩種錯(cuò)誤: 1、建議直接使用JTable的方法 setEnabled(false), 例如:jTable.setEnabled(false),但是這種方法只是使jTable失效,即讓jTable只能看,不能做其他任何操作。 2、在定義DefaultTableModel類時(shí)使用isCellEditable方法。 ??? 例如:tableModel = new DefaultTableModel(){public boolean isCellEditable(int row, int column) {return false;}};? ??? 其實(shí)這是錯(cuò)誤的,雖然我剛開始也是這么認(rèn)為的。 ??? 這樣使用isCellEditable沒有作用,必須在定義JTable類時(shí)使用,例如正文中的正確代碼! ??? 為什么會(huì)這樣?難道JTable本身也有isCellEditable方法嗎? ??? 請(qǐng)哪位朋友告訴我?謝謝啊!
總結(jié)
以上是生活随笔為你收集整理的如何让Jtable不可编辑?(的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jtable 清空
- 下一篇: java访问远程共享文件