JTreeのノードを走査する
Total: 6788
, Today: 2
, Yesterday: 8
Posted by aterai at
Last-modified:
概要
JTree
のノードからEnumeration
を取得してサブツリーの走査を行います。
Screenshot
Advertisement
サンプルコード
TreeModel model = tree.getModel();
DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getRoot();
Enumeration<?> e = root.breadthFirstEnumeration();
while (e.hasMoreElements()) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) e.nextElement();
textArea.append(node.toString() + "\n");
}
View in GitHub: Java, Kotlin解説
上記のサンプルでは、このJTree
の最上位ノードをルートにするサブツリー以下を、深さ優先、幅優先などで全走査しています。
- DefaultMutableTreeNode#depthFirstEnumeration()
- 深さ優先走査
- DefaultMutableTreeNode#postorderEnumeration()の後順走査と同一
blue, violet, red, yellow, colors, basketball, ... , JTree
- DefaultMutableTreeNode#breadthFirstEnumeration()
- 幅優先走査
JTree, colors, sports, food, blue, violet, red, ...
- DefaultMutableTreeNode#preorderEnumeration()
- 前順走査
JTree, colors, blue, violet, red, yellow, sports, basketball, soccer, ...
DefaultMutableTreeNode#children()
やDefaultMutableTreeNode#xxxxxEnumeration()
などの戻り値はJava 8
から9
で以下のように変更されるJava 8
:Enumeration
Java 9
:Enumeration<TreeNode>
Java 11
:Enumeration<? extends TreeNode>