TOP →
Java →
Swing →
JTree → This Page
JTree@Swing サンプル05
概要
Java -
Swing -
JTree のサンプルです。
・ツリーノードのオブジェクトを取得
・ツリーノードのオブジェクトを設定
解説
選択されたツリーノードのオブジェクトを取得してラベルに表示し、
+記号を追加してオブジェクトを再設定しています。
サンプルイメージ
サンプルソース
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTree;
import javax.swing.border.BevelBorder;
import javax.swing.border.Border;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
/**
* JTree サンプル05
* ・ツリーノードのオブジェクトを取得
* ・ツリーノードのオブジェクトを設定
*
* @author みっちー
*/
public class JTree05 extends JFrame implements TreeSelectionListener {
private static final long serialVersionUID = 1L;
/** ツリー */
JTree tree = null;
/** ラベル */
JLabel label = null;
/**
* 開始メソッド
*
* @param args パラメータ
*/
public static void main(String[] args) {
JTree05 frame = new JTree05();
// 閉じるボタンをクリックされた場合の動作を設定
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// ウインドウのタイトルを設定
frame.setTitle("JTree サンプル05");
// フレームの X座標、Y座標、幅、高さを設定
frame.setBounds(100, 200, 400, 200);
// フレームを表示(これをしないと透明のフレームが立ち上がってしまう)
frame.setVisible(true);
}
/**
* コンストラクタ
*/
public JTree05() {
// パネルを作成
JPanel panelBase = new JPanel();
// ルートを作成
DefaultMutableTreeNode root = new DefaultMutableTreeNode("root");
DefaultMutableTreeNode node1 = new DefaultMutableTreeNode("11111");
DefaultMutableTreeNode node2 = new DefaultMutableTreeNode("22222");
DefaultMutableTreeNode node3 = new DefaultMutableTreeNode("33333");
DefaultMutableTreeNode node21 = new DefaultMutableTreeNode("AAAAA");
DefaultMutableTreeNode node22 = new DefaultMutableTreeNode("BBBBB");
DefaultMutableTreeNode node23 = new DefaultMutableTreeNode("CCCCC");
node2.add(node21);
node2.add(node22);
node2.add(node23);
root.add(node1);
root.add(node2);
root.add(node3);
// ツリーを作成
tree = new JTree(root);
tree.setPreferredSize(new Dimension(150, 100));
tree.setShowsRootHandles(true);
tree.addTreeSelectionListener(this);
// ラベルを作成
label = new JLabel();
Border border = new BevelBorder(BevelBorder.LOWERED);
label.setBorder(border);
label.setPreferredSize(new Dimension(350, 30));
// ツリー・ラベルを追加
panelBase.add(tree);
panelBase.add(label);
// パネルを追加
getContentPane().add(panelBase);
}
public void valueChanged(TreeSelectionEvent e){
DefaultMutableTreeNode node = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
if (node != null){
// ツリーノードのオブジェクトを表示
String obj = (String)node.getUserObject();
label.setText(obj);
// ツリーノードのオブジェクトを設定
node.setUserObject("+" + obj);
// リフレッシュ
DefaultTreeModel tm = (DefaultTreeModel)tree.getModel();
tm.nodeChanged(node);
}
}
}
サンプルソースのダウンロード
ソースのダウンロード(Eclipse用のプロジェクトファイルも同梱)
更新履歴
2016/05/13 新規作成
TOP →
Java →
Swing →
JTree → This Page