2012-06-04 3 views
0

패널에 두 개의 표가 있습니다. 일부 셀에서 첫 번째 표를 클릭하면 행이 선택됩니다. 그리고 일부 셀에서 두 번째 테이블을 클릭하면 행이 선택됩니다.현재 셀을 클릭 한 테이블을 가져 오는 방법은 무엇입니까?

이제, 마지막으로 클릭 한 테이블을 어떻게 알 수 있습니까? 두 테이블에 모두 isRowSelected으로 시도 했으므로 둘 다 반환되므로 마지막으로 클릭 한 테이블을 찾을 수 없습니까?

누군가 나를 도울 수 있습니까?

+0

몇 가지 코드가 도움이 될 것입니다. 클릭 이벤트로 시도해 보셨습니까? – magodiez

답변

1

이것이의 MouseListener에서 또는 ListSelectionListener에 결정해야하는 경우 나도 몰라,하지만 간단한 해결책이 유사합니다

table1.addXxxListener(new XxxListener() { 
    // here, you know it's table 1 
} 


table2.addXxxListener(new XxxListener() { 
    // here, you know it's table 2 
} 
1

그것을 할 수있는 또 다른 방법 : 각 테이블에 대해 다른 리스너를 사용 이벤트의 소스를 확인하는 것입니다 : 이것이 사실 물론

new ListSelectionListener() { 

    @Override 
    public void valueChanged(ListSelectionEvent e) { 
     if (e.getSource()==table1.getSelectionModel()) { 
      // Event comes from table1 
     } else if (e.getSource()==table2.getSelectionModel()) { 
      // Event comes from table2 
     } 
    } 
} 

경우 및 선택 모델은

을 (자신하는 ListSelectionModel를 설정하지 않은 경우 어떤 경우인지) 단일 테이블에서 사용하는 경우에만
관련 문제