我有JTable
。其中我有幾列。在其中3我有JComboBox
(每列的每個單元都有其獨特JComboBox
- 即整個第1列 - 「蘋果」,「bannana」;第2列 - 「紅」,「藍」;第3列 - 「貓」,「狗」 )。在節目開始時,我希望它們是空的。稍後幾個行動事件後,我正在填補他們。問題是,僅爲每列添加相同值的JComboBox
是不夠的。因爲在將JComboBox
添加到JTable
之後,必須執行TableCellRenderer
並將其擴展爲DefaultCellEditor
,否則在表中看不到JComboBox
,除非您單擊它(TableCellRenderer
錯誤),而不是comboBox,您只需在單元格中獲取Object.toString()行DefaultCellRenderer
錯誤)。所以,我應該怎麼處理JComboBox
,TableCellRenderer
和DefaultCellEditor
這樣我就可以動態地全JComboBox
這是JTable
變化值。JTable,JComboBox動態值
回答
還有一件事你應該考慮。它正在使用一個模型。該模型將舉行蘋果,香蕉和貓和狗。 JTable和JComboBox分別有AbstractTableModel和ComboBoxModel。查看教程中的示例。
在我看來,你就必須同時覆蓋的TableCellRenderer和DefaultCellEditor返回相同的JComboBox。因此,您可以將JComboBox作爲參數傳遞給TableCellRenderer和DefaultCellEditor,然後讓getCompleteBox或getEditor例程返回該類的JComboBox。
不太清楚你的意思是「相同的JComboBox」 - 如果你真的(因爲我猜)是指「同一個實例」,那麼這是錯誤的。永遠不會在編輯器和渲染器中共享相同的組件實例! – kleopatra
kleopatra,這是爲什麼?爲什麼我不應該分享它?我應該使用相同型號的2個實例還是smth?但是然後選擇會變得複雜,正如我上面提到的,如果您在一個組合框中選擇了值,那麼具有相同模型(所有列)的所有組合框都將以相同的值進行選擇。 – Minutis
其實,我不認爲渲染器中的組合框會起作用,因爲渲染器只是創建圖形然後被複制。然而在編輯器中,一次只顯示一個,所以你不需要很多副本 - 編輯器只需將它與必要的值和當前選擇一起播種。 – vextorspace
請閱讀Using a Combo Box as an Editor,因爲JTable的JComboBox的認識爲渲染器和編輯器也實例here,和例如約EachRowEditor
謝謝你的幫助。但仍然存在問題。我在一個柱子中爲所有JComboBox使用一個模型。當我填寫或刪除值是可以的。但是,如果我在一個單元格中選擇一個組合框,則所有列都選擇相同的值。 – Minutis
'我在一個colum中爲所有JComboBox使用了一個模型',它是正確和正確的輸出,但是爲了重新分配代碼,你必須將它分離到分離的Models中,否則你必須將項目從硬編碼範圍1-10中分離到COmboBOxModel ,11-20等。那不是個好主意...... – mKorbel
對不起,沒有真正理解你的意思。問題不在於增加值。如果我使用一個模型,我可以像我想要的那樣添加數值(在所有JComboBox's中的一列中,更改都是精確地)。但問題是,當我在一個JComboBox中選擇任何內容時,每個具有相同模型的其他JComboBox都會選擇相同的值。 – Minutis
- 1. jtable中的動態jcombobox渲染
- 2. jtable裏面的動態jcombobox物品
- 3. 鏈接JComboBox&JTable
- 4. 從JTable返回JComboBox
- 5. 動態更改JComboBox
- 6. 將JComboBox放入JTable中
- 7. JTable單元格中的JComboBox
- 8. JTable動態更新
- 9. 如何在JTable中添加一個JCombobox並在JTable內激發它的動作?
- 10. 移除JTable內的JCombobox邊框
- 11. 可用性功能JComboBox的內JTable中
- 12. JTable和JComboBox的組合使用
- 13. 特定JTable單元中的JComboBox
- 14. 使用JComboBox在JTable中顯示
- 15. JComboBox與JTable作爲ListCellRenderer組件
- 16. JComboBox無法在JTable TableHeader中展開
- 17. JTable,JComboBox使用自定義對象
- 18. 有一個jcombobox過濾器jtable
- 19. 在JTable內設置JComboBox選定索引
- 20. JTable與每個行不同的JCombobox
- 21. 如何在jtable行中插入jcombobox以獲取多個值
- 22. 當選擇行時,將jTable的值傳遞給jComboBox
- 23. 的JComboBox恢復到原來的值在JTable中
- 24. 基於另一個JComboBox的內容的動態JComboBox內容
- 25. 動態着色jTable行
- 26. 使JTable動態大小
- 27. 動態的JTable中列
- 28. JTable動態更改行高
- 29. 向JScrollPane動態添加JTable
- 30. 爲什麼JComboBox忽略空值狀態?
聽起來像你這樣做不對(或我誤解:-) - 你從來沒有在一個_component_細胞。相反,你有一個模型,其中保存_data_和呈現器/編輯器在表上滋潤數據 – kleopatra
所以你認爲在表中我應該舉例如字符串[]和當我覆蓋渲染/編輯器我得到它可視化? – Minutis