0
我创建了JavaTree。现在我想要获取每个类的所有子类和同级类名。我可以使用selectedNode.getParent().toString()
参加超级班。但下面的子类的代码给了像[email protected]
和兄弟类的结果,我找不到方法。有什么方法可以获取每个子类和兄弟类的名字吗?使用JTree在Java中取出每个子类和同级类名称
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.SwingUtilities;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
public class TreeExample extends JFrame
{
/****************** Developing a Simple JTree************************/
private JTree tree;
private JLabel selectedLabel; //for Event Handlers
public TreeExample()
{
//create the root node
DefaultMutableTreeNode root = new DefaultMutableTreeNode("AA");
//create the child nodes
DefaultMutableTreeNode bb = new DefaultMutableTreeNode("BB");
DefaultMutableTreeNode cc = new DefaultMutableTreeNode("CC");
//add the child nodes to the root node
root.add(bb);
root.add(cc);
//create the tree by passing in the root node
tree = new JTree(root);
add(tree);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("JTree Example");
this.pack();
this.setVisible(true);
/****************** Adding More Children************************/
videoInfoNode.add(new DefaultMutableTreeNode("DD"));
foodInfoNode.add(new DefaultMutableTreeNode("EE"));
foodInfoNode.add(new DefaultMutableTreeNode("FF"));
foodInfoNode.add(new DefaultMutableTreeNode("GG"));
//To get the selected node information
tree.getSelectionModel().addTreeSelectionListener(new TreeSelectionListener() {
@Override
public void valueChanged(TreeSelectionEvent e) {
DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
//sub class
if(selectedNode.getAllowsChildren()){----??????????
selectedLabel.setText(selectedNode.children().toString());}-----?????????
else{
System.out.println("no children");
}
//sibling class
System.out.println(selectedNode.getSibling().....);--------????????
}
});
} //end
//main
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new TreeExample();
}
});
}
}
它工作正常。非常感谢您的回复。 – Emalka