我在 JTable 的 2 列中有一个带有 JCheckboxes 的 JTable。假设 A 列和 B 列是其中包含 JComboBox 的列。A 列的 JCheckbox 的项目是静态的,可以硬编码。但是,B 列的 JComboBox 值的项目是动态的。我想要做的是,当用户启动应用程序时,列 A 的 JcomboBox 应该有静态值,它应该在 ComboBox 中显示默认选择值“---Select---”
即我将combox项设置为["--Select","X","Y","Z"]
此外,在列 B 的 JComboBox 中应显示默认值“请稍候”,这意味着一段时间后它将动态更新。在那之前,它必须显示“请稍候”。
在一组用户操作之后,我想用动态值更新 B 列的 JComboBox。即便如此,B 列的 JcomboBox 值也取决于 A 列的 JcomboBox 选定项。
我可以动态更新这些值,但是将该 Cell 渲染为 JComboBox 没有按预期工作。
我尝试了以下方法,
Enumeration<TableColumn> c = myTable.getColumnModel().getColumns();
int i = 0;
while (c.hasMoreElements()) {
TableColumn column = c.nextElement();
column.setCellRenderer(new ComboBoxCellRenderer(i));
i++;
}
private static class ComboBoxCellRenderer extends JComboBox implements TableCellRenderer {
public ComboBoxCellRenderer(int column) {
// for (int i = 0; i < elements.length; i++) {
if (column == 0) {
addItem("--Select--");
addItem("X");
addItem("Y");
addItem("Z");
}
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
setSelectedItem(value);
return this;
}
}
如果我使用此代码,则无法从 JComboBo 中选择项目。即使我选择,它也不会被选中。
我目前正在使用下面链接中提到的代码。
如果有人为此提供示例代码,这对我会有很大帮助。
提前致谢。