Я использую слушатель мыши, чтобы знать, когда пользователь нажимает на узлы JTree. Хотя, когда пользователь щелкает стрелку для расширения узла (просмотр дочерних элементов), выдается следующее исключение:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Core.ChannelView$1.mousePressed(ChannelView.java:120)
at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:263)
at java.awt.Component.processMouseEvent(Component.java:6370)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
Прослушиватель ChannelView:
MouseListener ml = new MouseAdapter() {
public void mousePressed(MouseEvent e) {
TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
if (e.getClickCount() == 1) {
line 120>>>>> System.out.println(selPath.getLastPathComponent());
} else if (e.getClickCount() == 2) {
System.out.println("Double" +selPath.getLastPathComponent());
}
}
};
tree.addMouseListener(ml);
Любые предложения о том, как я должен справиться с этим делом? Должен ли я просто попробовать поймать внутри оператора if? Кроме того, это хороший способ проверить наличие двойного щелчка, или я должен делать это другим способом? Спасибо