Problemas com Casting

No seguinte método, eu pego o nó selecionado


public ContasPlano getCurrentObject2(){
      TreePath nodepath = tree.getSelectionPath();
      ContasPlano node = (ContasPlano) nodepath.getLastPathComponent();
      return node;
  }


E o resultado é


Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.tree.DefaultMutableTreeNode cannot be cast to siag.entities.ContasPlano
	at siag.gui.tree.DynamicTree.getCurrentObject2(DynamicTreeDemo.java:211)
	at siag.gui.tree.DynamicTree$1.mouseClicked(DynamicTreeDemo.java:179)
	at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
	at java.awt.Component.processMouseEvent(Component.java:6507)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6269)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4860)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4501)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2713)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
	at java.awt.EventQueue.access$000(EventQueue.java:101)
	at java.awt.EventQueue$3.run(EventQueue.java:666)
	at java.awt.EventQueue$3.run(EventQueue.java:664)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:680)
	at java.awt.EventQueue$4.run(EventQueue.java:678)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:121)
	at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:182)
	at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:221)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:219)
	at java.awt.Dialog.show(Dialog.java:1072)
	at java.awt.Component.show(Component.java:1650)
	at java.awt.Component.setVisible(Component.java:1602)
	at java.awt.Window.setVisible(Window.java:1013)
	at java.awt.Dialog.setVisible(Dialog.java:1003)
	at siag.gui.MainFrame.jMenuItem1ActionPerformed(MainFrame.java:164)
	at siag.gui.MainFrame.access$300(MainFrame.java:20)
	at siag.gui.MainFrame$4.actionPerformed(MainFrame.java:117)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
	at javax.swing.AbstractButton.doClick(AbstractButton.java:356)
	at javax.swing.plaf.basic.BasicMenuItemUI$Actions.actionPerformed(BasicMenuItemUI.java:802)
	at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1661)
	at javax.swing.JComponent.processKeyBinding(JComponent.java:2879)
	at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:689)
	at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:697)
	at javax.swing.JMenuBar.processBindingForKeyStrokeRecursive(JMenuBar.java:697)
	at javax.swing.JMenuBar.processKeyBinding(JMenuBar.java:668)
	at javax.swing.KeyboardManager.fireBinding(KeyboardManager.java:306)
	at javax.swing.KeyboardManager.fireKeyboardAction(KeyboardManager.java:292)
	at javax.swing.JComponent.processKeyBindingsForAllComponents(JComponent.java:2971)
	at javax.swing.SwingUtilities.processKeyBindings(SwingUtilities.java:1585)
	at javax.swing.UIManager$2.postProcessKeyEvent(UIManager.java:1450)
	at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:762)
	at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1017)
	at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:889)
	at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:717)
	at java.awt.Component.dispatchEventImpl(Component.java:4730)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Window.dispatchEventImpl(Window.java:2713)
	at java.awt.Component.dispatchEvent(Component.java:4686)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
	at java.awt.EventQueue.access$000(EventQueue.java:101)
	at java.awt.EventQueue$3.run(EventQueue.java:666)
	at java.awt.EventQueue$3.run(EventQueue.java:664)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:680)
	at java.awt.EventQueue$4.run(EventQueue.java:678)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)


Não é possível obter o objeto do nó dessa maneira?

O getSelectionPath() retorna um DefaultMutableTreeNode.

Tente:

DefaultMutableTreeNode selectedNode =((DefaultMutableTreeNode) nodepath.getSelectionPath()).getUserObject(); ContasPlano node = (ContasPlano) selectedNode;