目次へ

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

}

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp