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