2011-11-01 5 views
6

JXTreeTabble을 사용하여 treetable을 구축 중이며 선택한 값에 따라 menu 개의 항목을 사용하지 않도록 설정하려고합니다. 그래서, 내 table model에서이 코드를 넣어 시도 :JXTreeTable에서 선택한 값 가져 오기

public Object getValueAt(int index) { 
     if (index >= 0 && index < root.getSize()){ 
      return root.get(index); 
     } 

     return null; 

    } 

table의 내용이 확장되지 않은 경우

위에만 작동 문제. selected rowindexable modelsize보다 클 수 있습니다 (모델은 두 항목을 가질 수 있으며 행은 모든 항목이 확장 될 때 10을 가질 수 있습니다). 또한 parentobject typechildren과 다릅니다 (아동용 챕터가있는 책을 생각해보십시오).

위 내용을 올바르게 수행하는 방법으로 무엇을 제안 하시겠습니까?

답변

0

인덱스는보기 및 모델에 따라 다를 수 있습니다. 당신이 먼저 행 번호를 index입니다 가정 convertRowIndextToModel()

6

를 사용하여 선택한 행의 인덱스를 조정해야, 시도 노드 객체의 개최 얻을 다음

TreePath path = treetable.getPathForRow(index); 
Object node = path.getLastPathComponent(); 

하는 treetable을 사용하여 테이블에 대한 포인터가 될 것입니다 이 테이블 모델.

+0

을 얻을 수있는 개체를 구문 분석 할 수있다. –

1

(JXTreeTable) treeTable에서 row 및 nodeClass를 기반으로 값에 액세스 할 수 있습니다. 예 :

int row=treeTable.getSelectedRow(); 
//get value from column 
Object object= treeTable.getValueAt(row, yourColumn); 
TreePath path= treeTable.getPathForRow(row); 
Object o= path.getLastPathComponent(); 
Class<? extends Object> entity=o.getClass(); 

당신이 객체에서 클래스를 얻을 것입니다 결과, 당신은 대답 값

관련 문제