나는 mouseListener를 Jtree에 추가 할 수 있다는 것을 알고 있지만 그의 요소 중 하나를 두 번 클릭해야하고 doSomething();DefaultMutableTreeNode에서 마우스 수신기를 얻으려면 어떻게해야합니까?
1
A
답변
1
확인이 - documentation of JTree에서
public class NetworkTree extends JPanel implements TreeSelectionListener {
private JTree tree;
private static int PANEL_WIDTH=250;
private static int PANEL_HEIGHT=500;
private static String lineStyle = "Horizontal";
public NetworkTree() {
DefaultMutableTreeNode top = new DefaultMutableTreeNode(new Site(
1,1,"Network","",3));
getSubNodes(top,0);
tree = new JTree(top);
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
tree.addTreeSelectionListener(this);
JScrollPane treeView = new JScrollPane(tree);
add(treeView);
tree.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent me) {
newNodeSelected();
}
});
}
.....
public void newNodeSelected() {
JOptionPane.showMessageDialog(null,"Hello");
}
..... }
5
: 당신이 때 더블 클릭 이벤트 또는 하나의 검출에 관심이 있다면
노드가 선택되었는지 여부에 관계없이 사용자가 노드를 클릭하면 다음을 수행하는 것이 좋습니다.
나는 소스를 얻을 경우, 객체가 가지는 JTree처럼 selRow 및 selPath.I는 더블 클릭 된 노드의 name.Seems 필요 필요한 이유
final JTree tree = ...;
MouseListener ml = new MouseAdapter() {
public void mousePressed(MouseEvent e) {
int selRow = tree.getRowForLocation(e.getX(), e.getY());
TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
if(selRow != -1) {
if(e.getClickCount() == 1) {
mySingleClick(selRow, selPath);
}
else if(e.getClickCount() == 2) {
myDoubleClick(selRow, selPath);
}
}
}
};
tree.addMouseListener(ml);
관련 문제
- 1. JavaScript로 마우스 위치를 얻으려면 어떻게해야합니까?
- 2. 마우스 수신기를 차트 좌표로 변환
- 3. Google Closure에서 현재 마우스 위치를 얻으려면 어떻게해야합니까?
- 4. GTK에서 키보드 및 마우스 입력을 얻으려면 어떻게해야합니까?
- 5. three.js로 마우스 오버시 이미지 좌표를 얻으려면 어떻게해야합니까?
- 6. jQuery 도구 탭 - 콘텐츠 영역에서 마우스 이벤트 수신기를 중지하려면 어떻게해야합니까?
- 7. 스크롤링하는 컨텐츠에 이벤트 수신기를 추가하려면 어떻게해야합니까?
- 8. JPanel 이미지에 마우스 수신기를 추가하는 방법은 무엇입니까?
- 9. 마우스 수신기를 발사 한 항목을 알려주는 방법
- 10. 사용자 스크립트에서 마우스 오버 이미지 효과를 얻으려면 어떻게해야합니까?
- 11. 변환 된 WPF 컨트롤에서 마우스 클릭의 좌표를 얻으려면 어떻게해야합니까?
- 12. tkinter에서 상위 위젯을 기준으로 마우스 위치를 얻으려면 어떻게해야합니까?
- 13. jQuery를 사용하여 마우스 오버시 표시 할 버튼을 얻으려면 어떻게해야합니까?
- 14. Android에서 라디오 방송국 이름을 얻으려면 어떻게해야합니까?
- 15. 열린 색상 상자에 이벤트 수신기를 연결하려면 어떻게해야합니까?
- 16. 앱 설치시 브로드 캐스트 수신기를 시작하려면 어떻게해야합니까?
- 17. 익명 구성 요소에서 이벤트 수신기를 제거하려면 어떻게해야합니까?
- 18. ToggleButton - 수동으로 onClick 수신기를 호출하려면 어떻게해야합니까?
- 19. Java : 프로세서에 수신기를 추가하십시오.
- 20. JLabel에 포함 된 ImageIcon에 마우스 수신기를 추가하는 방법은 무엇입니까?
- 21. JTable에서 마우스가 가리키는 char를 반환하는 마우스 수신기를 구현하는 방법은 무엇입니까?
- 22. 10 개의 동영상 클립에 루프가있는 마우스 이벤트 수신기를 할당하십시오.
- 23. 추가 마우스 수신기 '비활성'
- 24. ActionExecutingContext에서 MethodInfo를 얻으려면 어떻게해야합니까?
- 25. 파일에서 CGImageRef를 얻으려면 어떻게해야합니까?
- 26. 조치 이름을 얻으려면 어떻게해야합니까?
- 27. 데이터베이스에서 테이블을 얻으려면 어떻게해야합니까?
- 28. TrackPopupMenu에서 니모닉을 얻으려면 어떻게해야합니까?
- 29. CPU 사용법을 얻으려면 어떻게해야합니까?
- 30. 서비스에서 상태를 얻으려면 어떻게해야합니까?
16,는 아직도 모른다. –
@AdrianStamin 클릭 한 노드는 [selPath.getLastPathComponent()] (http : // docs()와 함께 가져온'selPath'의 마지막 구성 요소입니다. .org/6/docs/api/javax/swing/tree/TreePath.html # getLastPathComponent()) – halex
고마워요, 작동합니다! –