0

我创建了一个 JComboBox,并在 JTable 的列上使用它 - 请参见下面的代码。

Object[] items = {"1", "2", "3", "4"};
JComboBox comboBox = new JComboBox(items);
comboBox.setRenderer(new customComboBoxRenderer());
myTable.getColumnModel().getColumn(Table.CONF_COL).setCellEditor(new DefaultCellEditor(comboBox));

现在,我的问题是我无法找到一种方法使带有组合框的表格列中的每个组合框都有一个初始值(每个组合框可能不同),这也将是特定的选定项目程序启动时的组合框。我认为问题正在产生,因为 JTable 仅对列的所有单元格使用一个 JComboBox 实例,因此我永远无法为列上的每个单元格获取不同的组合框实例并将所选项目设置为它们.

任何帮助将非常感激。

非常感谢,

社会

4

2 回答 2

2
  • 阅读 Oracle 教程How to use Tables - Using a Combo Box as an Editor for working code example

  • 一切都取决于存储在中的值DefaultComboBoxModel,在您的情况下,我将存储Integer而不是es 模型String的值JComboBox

  • 存储在XxxTableModel表示选定或初始值中JComboBox的值TableCellEditor

  • 在那里你也可以存储 Integer 值,以避免 String 和 Integer 之间的任何解析

  • 简单的使用(JTableXxxTableModel)。setValueAtJTable(由 绘制TableCellRenderer)中显示所需的值

  • 有关Oracle 教程的TableCellRenderer更多信息TableCellEditor

于 2013-11-12T18:27:32.563 回答
0

在你的customComboBoxRenderer

称呼setSelectedItem(same type as your jcombobox elements, in this case String)

在你的里面

getTableCellRendererComponent(.. )方法

于 2016-01-02T21:00:41.480 回答