Eclipse로 작업 중이며 JXTreeTables에 대한 질문이 있습니다. 노드를 두 번 클릭했을 때 팝업에 대한 노드에 대한 정보를 보여주는 창이 필요합니다. 이제 JXTreeTable의 두 번 클릭 된 노드를 가져올 수 있습니까? 아니면 클릭이 노드에 직접 연결되지 않았 으면 null입니까?더블 클릭 된 TreeTableNode를 얻는 방법은 무엇입니까?
5
A
답변
4
나는 완벽하게 잘 작동하고 더 단순한 thread kleopatra에 대한 답변을 받았습니다. 여기 코드는 다음과 같습니다
treeTable.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(final MouseEvent e) {
if (e.getClickCount() != 2) {
return;
}
final int rowIndex = treeTable.rowAtPoint(e.getPoint());
if (rowIndex < 0) {
return;
}
final TreeTableNode selectedNode = (TreeTableNode)treeTable.getPathForRow(rowIndex).getLastPathComponent();
}
});
2
당신이 tree.getRowForLocation (...)의 동작을 의미 가정하면 다음 트리 테이블에는 API가 없다, 당신은 API를 누락 히트와
도 :-) swingx 이슈 트래커에서 개선 문제를 제기하는 것이 좋습니다사용할 수있게 될 때까지는 해당 트리 메서드에 위임 한 사용자 정의 MouseListener에서 직접 처리해야합니다. 약간 (기침 ..)가는 더러운에서의 JTree에 계층 열의 렌더러를 타입 캐스팅 :
MouseListener l = new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() != 2) return;
int column = treeTable.columnAtPoint(e.getPoint());
if (!treeTable.isHierarchical(column)) return;
Rectangle cell = treeTable.getCellRect(0, column, false);
JXTree tree = (JXTree) treeTable.getCellRenderer(0, column);
// translate x to tree coordinates
int translatedX = e.getX() - cell.x;
int row = tree.getRowForLocation(translatedX, e.getY());
LOG.info("row " + row);
}
};
treeTable.addMouseListener(l);
를 그냥 레코드의 Swinglabs forum over at java.net
편집
에서 병렬 스레드있다 OPS와 가정 ;-)의
비애는 테이블에 어디을 클릭 두 번에 발사 할 리스너 대답 소유 노드를 포함하는 셀 ()이 노드를 통해 직접적으로 일 때 (일명 : 해당 텍스트). 그래서 요구 사항은 가정 된 tree.getRowForLocation (..)보다 tree.getClosestRowForLocation (..)의 행을 따라 더 많은 것입니다.
관련 문제
- 1. 더블 클릭 아이콘으로 Tomcat을 시작하는 방법은 무엇입니까?
- 2. Google지도의 마커에서 더블 클릭 이벤트를 얻는 방법
- 3. 안드로이드에서 더블 클릭 이벤트
- 4. 더블 클릭
- 5. Icefaces RowSelector 더블 클릭
- 6. 클릭 이벤트에서 더블 클릭 이벤트와 동일한 코드를 실행하는 방법은 무엇입니까?
- 7. 캔버스에서 더블 클릭을 얻는 방법
- 8. 더블 클릭 jqgrid 행
- 9. 더블 클릭 된 항목의 ID 얻기
- 10. document.write를 사용하는 더블 클릭 광고를 지연로드하는 가장 좋은 방법은 무엇입니까?
- 11. 안드로이드 - 더블 클릭 카메라
- 12. Windows 더블 클릭 기간
- 13. 더블 클릭, theJit
- 14. silverlight dataagrid에서 더블 클릭
- 15. 비활성화 NSTableView 더블 클릭
- 16. jQuery 탭 : 더블 클릭
- 17. DataGridView 항목 더블 클릭
- 18. 썸네일 캡션 단일 클릭 및 더블 클릭?
- 19. 내 더블 클릭 기능 만들기
- 20. Eclipse CDT에서 더블 클릭 단어 분리 문자를 구성하는 방법은 무엇입니까?
- 21. jQuery에서 더블 클릭 또는 타임 아웃 클릭을 비활성화하는 방법은 무엇입니까?
- 22. 코드 숨김을 사용하지 않고 더블 클릭 이벤트를 처리하는 방법은 무엇입니까?
- 23. 더블 클릭 이벤트 (WPF)에 대한 목록보기에서 값을 얻는 방법
- 24. QTreeWidget 클릭 에디션 및 더블 클릭
- 25. WPF : 하우투 핸들을 클릭, 더블 클릭 버튼?
- 26. BrowserField에서 클릭 한 URL을 얻는 방법은 무엇입니까?
- 27. wxTextCtrl 클릭 이벤트를 얻는 쉬운 방법은 무엇입니까?
- 28. onClickListener에서 클릭 위치를 얻는 방법은 무엇입니까?
- 29. 더블 클릭 강조 표시 핫키?
- 30. 자바 스크립트 더블 클릭 문제
당신은 그냥 조심 :-) 솔루션이 기쁜 : (그냥 때 _directly_ 노드에 걸쳐 리스너가 노드를 포함하는 테이블 셀에 더블 클릭 _anywhere_에 실행됩니다 이런 식으로 일명 : 그 텍스트). – kleopatra
그건 내 의도 였지만 어쨌든 당신의 답변에 많은 감사드립니다! – user107043