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