我最初想在默认单元格编辑器组合框中选择一个值。当我在渲染器或编辑器中设置它时,即使用户更改它,组合总是显示相同的值,因为我在渲染器中设置值。如何在渲染器中设置组合框值并允许用户对组合进行更改?下面是我的代码:
public TableCellRenderer getCellRenderer(int row, final int column) {
if (column == 1) {
TableCellRenderer renderer = new TableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable arg0, Object arg1,boolean arg2, boolean arg3, int row, int col) {
String text="";
Component comp;
if(lovArray[row]!=null && lovArray[row].split("\\|").length>1)
{
JComboBox combo = new JComboBox(lovArray[row].split("\\|"));
comp =combo;
//combo.setSelectedItem(values[row]);
}
else
{
comp = CustomTable.super.getCellRenderer(row, col).getTableCellRendererComponent(arg0, arg1, arg2, arg3, row, col);
}
return comp;
}
};
return renderer;
}
return super.getCellRenderer(row, column);
}
在上面的代码中,只有当该特定行的值具有多个由“|”分隔的值时,我才会显示一个组合。否则我将返回默认渲染器。
我还想将组合值设置为数组中的特定值。但由于我在渲染器内部设置,即使用户更改组合值,它也始终显示相同的值。如何解决这个问题?