gpt4 book ai didi

java - jtable 内的动态 jcombobox 渲染

转载 作者:行者123 更新时间:2023-11-30 04:28:17 26 4
gpt4 key购买 nike

我有一个 JTable,其中 JCheckboxes 位于 JTable 的 2 列中。假设 A 列和 B 列是其中包含 JComboBox 的列。 A 列的 JCheckbox 的项目是静态的,可以进行硬编码。但是,B 列的 JComboBox 值的项目是动态的。我想做的是,当用户启动应用程序时,A 列的 JcomboBox 应该具有静态值,并且应该将 ComboBox 中的默认选定值显示为“---Select---”

即我将组合框项目设置为 ["--Select","X","Y","Z"]

此外,B 列中的 JComboBox 应显示默认值“请稍候”,这意味着一段时间后它将动态更新。在那之前,它必须显示“请稍候”。

经过一组用户操作后,我想使用动态值更新列 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 中选择项目。即使我选择了,它也不会被选择。

我目前正在使用下面链接中提到的代码。

Stackoverflow

如果有人为此提供示例代码,这对我会有很大帮助。

提前致谢。

最佳答案

DependentColumn可能会提供一些指导。如果依赖列也可编辑,请参阅这些 related examples .

image

关于java - jtable 内的动态 jcombobox 渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15310096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com