解答例 - 実習課題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);
}
}

