我在JTable的2列中有一个带有JCheckboxes的JTable。让我们说列A和列B是其中包含JComboBox的列。 A列JCheckbox的项目是静态的,可以进行硬编码。但是,B列的JComboBox值的项目是动态的。我想要做的是,当用户启动应用程序时,列A的JcomboBox应该具有静态值,它应该在ComboBox中显示默认选择的值“---选择---”
即。我将combox项目设置为[“ - 选择”,“X”,“Y”,“Z”]
此外,在列B中,JComboBox应将默认值显示为“Please Wait”,这意味着,经过一段时间后,它将动态更新。在此之前,它必须显示“请等待”。
经过一些用户操作后,我想用动态值更新Column B的JComboBox。即便如此,列B的JcomboBox值也依赖于列A的JcomboBox选择的项目。
我可以动态更新值,但是作为JComboBox的Cell的渲染没有按预期工作。
我尝试了以下内容,
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中选择项目。即使我选择,它也没有被选中。
我目前正在使用以下链接中提到的代码。
如果有人为此提供示例代码,那将对我有所帮助。
提前致谢。