我有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