【发布时间】:2013-11-01 09:26:07
【问题描述】:
想法如下:假设我有一个扩展TableModel 的类,具有类似List<List<String>> collection 的字段。在一个事件中,我想清除 JTable 并重新添加一个特定列是组合框的行;组合框n 中的项目是我列表中collection.get(n) 中List<String> 中的项目。所以我正在迭代 collection 添加行,并且我正在迭代每个 collection.get(n) 添加组合框项目。
没有事件监听器。当点击一个单独的按钮时,只要我可以在每个组合框上getSelectedIndex,我就可以计算出需要发生的事情。
我花了两个半小时将我的 GUI 变成了代码意大利面条,在那里我几乎扩展了所有内容,并且几乎对所有内容都有最大的耦合。我想我什至可能有两个不相交的JComboBox 实例集合。我这样说是为了强调,发布我目前拥有的任何代码对我绝对没有好处。
我已经阅读了these 中的the oracle tutorial on JTable、all 和strangely 不要have 一个我能理解的解释。
所以基本上我只需要知道我需要什么,因为我没有找到任何资源。
【问题讨论】:
-
首先,TableModel 用于对要查看的数据进行建模,因此不必担心尝试将组合框或组合值放入其中。相反,建立一个 TableCellEditor 并将 List
- > 传递给它。每当编辑单元格时,表格将需要编辑器组件,它将传递行和列索引。根据行所需的值简单地准备 ComboBoxModel,并将其播种到编辑器
标签: java swing jtable jcombobox tablecelleditor