最初にデフォルトのセル エディター コンボボックスで値を選択したいと考えています。レンダラーまたはエディター内で設定すると、レンダラーで値を設定しているため、ユーザーが変更してもコンボは常に同じ値を表示します。レンダラーでコンボボックスの値を設定し、ユーザーがコンボを変更できるようにする方法は? 以下は私のコードです:
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);
}
上記のコードでは、特定の行の値に「|」で区切られた複数の値がある場合にのみコンボを表示します。それ以外の場合は、デフォルトのレンダラーを返します。
また、コンボ値を配列の特定の値に設定したいと考えています。ただし、レンダラー内で設定しているため、ユーザーがコンボ値を変更しても、常に同じ値が表示されます。これを修正するには?