Swing/TraverseAllNodes のバックアップ(No.10)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- 現在との差分 - Visual を表示
- ソース を表示
- Swing/TraverseAllNodes へ行く。
- 1 (2012-01-17 (火) 13:52:52)
- 2 (2012-12-13 (木) 15:49:47)
- 3 (2014-12-09 (火) 21:08:36)
- 4 (2016-03-02 (水) 13:39:54)
- 5 (2017-04-07 (金) 13:48:21)
- 6 (2018-03-22 (木) 14:11:56)
- 7 (2018-03-30 (金) 16:28:21)
- 8 (2018-03-30 (金) 19:17:21)
- 9 (2020-03-22 (日) 01:47:43)
- 10 (2021-09-30 (木) 09:44:20)
- 11 (2022-08-20 (土) 22:15:25)
- category: swing folder: TraverseAllNodes title: JTreeのノードを走査する tags: [JTree, Enumeration, TreeModel, DefaultMutableTreeNode] author: aterai pubdate: 2012-01-16T15:35:56+09:00 description: JTreeのノードからEnumerationを取得してサブツリーの走査を行います。 image:
概要
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>