SOBRE DefaultMutableTreeNode e String

Tenho uma Árvore construida com o JTree:


package exemplos;

import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

import javax.swing.JFrame;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.JTree;

import view.TelaPesquisa;

public class Arvore extends JFrame implements TreeSelectionListener{
	JTree tree;
	DefaultMutableTreeNode node;
	String s;
	Arvore(){
		getContentPane().setLayout(null);
		tree = new JTree();
		tree.addTreeSelectionListener((TreeSelectionListener) this);
		tree.setBounds(10, 11, 534, 440);
		getContentPane().add(tree);
		setSize(570, 500);
		setLocationRelativeTo(null);	
	}
	public void valueChanged(TreeSelectionEvent arg0) {
		// node é igual a galho selecionado 
		node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();	
		
		//Estou com dificuldade de fazer um cast com uma String
		s = (String) tree.getLastSelectedPathComponent();
		// Assim gostaria de imprimir minha String
		//System.out.println(s);
		
	}
	
	public static void main(String[] args){
		JFrame janela = new Arvore();
		
		janela.setVisible(true);
		WindowListener x = new WindowAdapter(){
		public void windowClousing(WindowEvent e){	
			System.exit(0);
		}
		};
		}

	
}

Sou iniciante em java, quem puder me ajudar ficarei muito grato

Não sei que professor (ou que bando de professores) ensinou que quando você não sabe resolver um problema, tem de usar um cast.

Em Java, casts normalmente não fazem conversões, mas só indicam que tipo deve ser usado para acessar um determinado objeto.

Se um tree.getLastSelectedPathComponent() não retorna um objeto que é da classe java.lang.String, então um cast não vai fazer esse objeto magicamente uma String.

No seu caso, ele normalmente retorna um objeto que é de uma classe que estende (ou é) DefaultMutableTreeNode.

Você pode usar o método getUserObject() de DefaultMutableTreeNode; no seu caso, provavelmente o objeto retornado ppor esse método ou será uma String, ou então é algo cujo método toString() faz sentido para você.

Veja o exemplo em http://docs.oracle.com/javase/tutorial/uiswing/events/treeselectionlistener.html