【发布时间】:2015-08-20 18:46:42
【问题描述】:
我有一个 JTable。 JTable 中的一列被分配了一个扩展的 TableCellEditor,它显示了一个扩展的 JComboBox。
有 100 个字符串对象的固定列表填充组合框。
挑战:
- 设计 JComboBoxes 以便任何选择相对于其他框是唯一的?也就是说,如果从第一行的组合框中选择了“A”,它会自动从其他组合框的列表中删除。
- 将新房间添加到表格时,它包含的组合框应自动填充到第一个可用列表项。
问题: 我的组合框工作得很好。我可以随意选择项目。我什至在从列表中删除已经使用过的项目方面取得了一些进展。但我不知道如何正确地自动填充。
我很困惑,因为我的组合框构造函数似乎只在创建表时调用一次,而不是每行一次。
是这样吗? TableCellEditor 的构造函数是否只调用一次?如果是这样,我该如何修改每个组合框的行为?
感谢您的帮助!
如果您需要特定代码,请告诉我。不知道你要不要我把整个类都粘贴进去。
【问题讨论】:
-
我们不想要您的整个代码库。如果你能用尽可能少的类和方法做一个简短的例子来说明问题,那将是一个很大的帮助。
-
Is the constructor for a TableCellEditor only called once ever?- 任何对象的构造函数只在创建对象时调用一次。my combobox constructor is only called once when the table is created, not once for each row.- 使用编辑器和渲染器的要点是类由表共享,以尽量减少创建的对象数量。
标签: java swing combobox jtable tablecelleditor