Javaプログラミング/Javaプログラミング関連情報

JTreeでツリー表示を作ろう!(5ページ目)

今回は、階層的にデータを表示する「JTree」の基本について説明します。

執筆者:掌田 津耶乃

Vectorのサブクラスを実装する


では、先ほどのサンプルを修正して、サブ項目を持つ項目名も正しく表示されるように修正してみましょう。ここではVector継承クラスにnameというフィールドを持たせ、これをtoStringで表示させることにしましょう。

package jp.allabout.java;

import java.awt.*;
import java.util.Vector;

import javax.swing.*;
import javax.swing.tree.*;

public class SampleApp extends JFrame{
  private static final long serialVersionUID = 1L;
  private JTree tree;
  private JScrollPane pane;
  
  public SampleApp(){
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    MyVector data = new MyVector("root");
    data.add("One");
    data.add("Two");
    MyVector sub = new MyVector("sub folder!");
    sub.add("Sub");
    sub.add("next sub");
    data.add(sub);
    tree = new JTree(data);
    pane = new JScrollPane(tree);
    this.add(pane,BorderLayout.CENTER);
    this.setSize(new Dimension(200,200));
  }
  
  public static void main(String[] args) {
    new SampleApp().setVisible(true);
  }
}

class MyVector extends Vector {
  private static final long serialVersionUID = 1L;
  
  private String name;
  
  public MyVector(String s){
    super();
    this.name = s;
  }
  
  public String toString(){
    return this.name;
  }
}

Vectorのサブクラスを用意し、サブ項目を持つ項目名も正しく表示されるようにできた。


意外に簡単に、VectorでJTreeの表示を構築できてしまいました。まぁ、Vector継承クラスを定義するという面倒はありますが、これも一度作ってしまえばそれでおしまいです。正直、わざわざDefaultMutableTreeNodeなんていう舌をかみそうな新しいクラスを覚えるより安直で使いやすかったりするのは、ガイドだけ?
【編集部おすすめの購入サイト】
Amazonで Java 関連の書籍をチェック!楽天市場で Java 関連の書籍をチェック!
  • 前のページへ
  • 1
  • 3
  • 4
  • 5
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます