解答例 - 実習課題2 - 13.ツリー
(実習課題2)
実習課題1のプログラムを改良しなさい。
- ノードの展開したときに、展開したノードのパスをダイアログに表示する事。
解答例
/** * JTreePathJFrame.java * TECHSCORE Javaユーザインタフェース13章 実習課題2 * * Copyright (c) 2004 Four-Dimensional Data, Inc. */ package com.techscore.ui.chapter13.exercise2; import java.awt.Dimension; import java.util.Hashtable; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JTree; import javax.swing.event.TreeExpansionEvent; import javax.swing.event.TreeExpansionListener; public class JTreePathFrame extends JFrame implements TreeExpansionListener { public JTreePathFrame() { super("JTreePathFrame"); setDefaultCloseOperation(EXIT_ON_CLOSE); // JTreeの生成 String[] lowerCases = { "a", "b", "c" }; String[] upperCases = { "A", "B", "C" }; Hashtable alphabets = new Hashtable(); alphabets.put("小文字", lowerCases); alphabets.put("大文字", upperCases); String[] kanas = { "い", "ろ", "は" }; String[] kanjis = { "山", "海", "空" }; Hashtable japanese = new Hashtable(); japanese.put("ひらがな", kanas); japanese.put("漢字", kanjis); Hashtable root = new Hashtable(); root.put("英字", alphabets); root.put("和字", japanese); //JTreeの設定 JTree tree = new JTree(root); tree.setPreferredSize(new Dimension(250, 400)); tree.addTreeExpansionListener(this); getContentPane().add(tree); pack(); } public void treeExpanded(TreeExpansionEvent event) { JOptionPane.showMessageDialog( this, event.getPath(), "EXPANSION", JOptionPane.INFORMATION_MESSAGE); } public void treeCollapsed(TreeExpansionEvent event) { }; public static void main(String[] args) { new JTreePathFrame().setVisible(true); } }