[英]Dynamic jcombobox rendering inside jtable
我在JTable的2列中有一个带有JCheckboxes的JTable。 可以说A列和B列是其中带有JComboBox的列。 列A的JCheckbox的项是静态的,可以进行硬编码。 但是,列B的JComboBox值的项目是动态的。 我想做的是,当用户启动应用程序时,列A的JcomboBox应该具有静态值,并且应该在ComboBox中将默认选择的值显示为“ --- Select ---”。
即我将combox项设置为[“ --Select”,“ X”,“ Y”,“ Z”]
同样,在B列的JComboBox中应将默认值显示为“ Please Wait”,这意味着一段时间后它将被动态更新。 在此之前,它必须显示“ Please Wait”。
经过一系列用户操作后,我想用动态值更新列B的JComboBox。 即使如此,列B的JcomboBox值也取决于列A的JcomboBox选定的项。
我可以动态更新值,但是将该单元作为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中选择项目。 即使我选择,它也不会被选择。
我目前正在使用以下链接中提到的代码。
如果有人为此提供示例代码,这对我会很有帮助。
提前致谢。
DependentColumn
可能会提供一些指导。 如果从属列也是可编辑的,请参见这些相关示例 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.