내 테이블의 행 중 하나가 ComboBox입니다. 'Yes', 'No', 'Both'중 하나를 선택할 수 있습니다. 둘 다 선택하면 테이블을 작성하고 테이블을 새로 고치는 데이터 배열을 일부 수정해야합니다. 이전 게시물에서 Both에 대한 else 문에서 내 논리를 작성하는 것이 좋습니다.ComboBox를 사용하여 행의 인덱스 값을 가져 오는 중
protected void setValue(Object element, Object value)
{
if((element instanceof AplotDatasetData) && (value instanceof Integer)) {
Integer choice = (Integer)value;
String option = ((AplotDatasetData)element).getMarkupValue();;
if(choice == 0) {
option = "No";
}
else if(choice == 1) {
option = "Yes";
}
else {
option = "Both";
abd.getIndexOfSelectedBoth(); <<<<<<<<<
}
((AplotDatasetData)element).setMarkupValue(option);
getViewer().update(element, null);
}
}
위의 코드는 OptionEditingSupport 클래스에 있습니다.
테이블의 클래스는 AplotBaseDailog입니다.
그래서 OptionEditingSupport 클래스에서 AplotBaseDailog 클래스를 가져 와서 할당했습니다.
AplotBaseDialog abd;
그때 나는 그들이 단지 모두로 변경 컬럼의 행 인덱스를 얻을 수있는 AplotBaseDailog 클래스의 방법을 썼다. 배열에서 데이터를 가져 오려면 인덱스 값이 필요합니다.
public void getIndexOfSelectedBoth() {
int row = viewer.getTable().getSelectionIndex();
AplotDataModel.getInstance().rebuildDataArray(row);
updateTableViewer();
}
그러면 행의 인덱스를 내 dataModel 클래스의 메서드에 전달하고 있습니다. 데이터 배열이있는 dataModel 클래스에 있습니다.
나는 바퀴를 여기에서 재발 명하고있다라고 생각하고있다. 이 과정을 수행하는 더 좋은 방법이 있어야합니다. 지금 장소에 내 모든 코드, 내가 AplotBaseDialog
else {
option = "Both";
abd.getIndexOfSelectedBoth(); <<<<----
}
를 호출하는 줄에 널 (null) 포인터 오류가 무엇입니까 당신은 OptionEditingSupport 클래스의 인덱스를받을 수 있습니까?