Developer'sWorks
Tips

アイテムからテーブルレンダラ、エディタを取得する方法

このドキュメントは Ver1.1.X以降のバージョンにて有効です。

JComponent comp = item.getComponent();
if(comp instanceof DefaultTable){
	DefaultTable table = (DefaultTable)comp;
	
	//指定アイテムのTableColumnオブジェクト取得
	TableColumn col = null;
	for(int i=0;i<table.getColumnCount();i++){
		if(table.getColumnModel().getColumn(i).getIdentifier() == item){
			col = table.getColumnModel().getColumn(i);
			break;
		}
	}
	
	int modelIndex = col.getModelIndex();
	System.out.println("modelIndex:" + modelIndex);
	if(modelIndex >= 0){
		System.out.println("Editor:" + col.getCellEditor());
		System.out.println("Renderer:" + col.getCellRenderer());
	}
}

col.getCellEditor() で取得できるコンポーネントは、jp.ne.mki.wedge.run.client.component.table.editor.AbstractEditor を継承したエディタになります。
col.getCellRenderer() で取得できるコンポーネントは、jp.ne.mki.wedge.run.client.component.table.renderer.AbstractTableRenderer を継承した レンダラになります。

前景色・背景色の変更などにより、 表示用コンポーネント(例えば、テキストフィールドやコンボボックス)を取得したい場合には、以下にてにて取得が可能です。

((AbstractEditor)col.getCellEditor()).getComponent();
((AbstractTableRenderer)col.getCellRenderer()).getComponent();