0

最初にデフォルトのセル エディター コンボボックスで値を選択したいと考えています。レンダラーまたはエディター内で設定すると、レンダラーで値を設定しているため、ユーザーが変更してもコンボは常に同じ値を表示します。レンダラーでコンボボックスの値を設定し、ユーザーがコンボを変更できるようにする方法は? 以下は私のコードです:

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);

}

上記のコードでは、特定の行の値に「|」で区切られた複数の値がある場合にのみコンボを表示します。それ以外の場合は、デフォルトのレンダラーを返します。

また、コンボ値を配列の特定の値に設定したいと考えています。ただし、レンダラー内で設定しているため、ユーザーがコンボ値を変更しても、常に同じ値が表示されます。これを修正するには?

4

1 に答える 1