JTree | Java Swing

La classe JTree est utilisée pour afficher des données structurées en arborescence ou des données hiérarchiques. JTree est un composant complexe. Il a un « nœud racine » en haut qui est le parent de tous les nœuds de l’arborescence. Il hérite de la classe JComponent.


 
 

Les constructeurs de la classe JTree sont:
Constructeurs JTree
Description
JTree() Crée un JTree.
JTree(Object[] value) Crée un JTree avec chaque élément du tableau spécifié en tant qu’enfant d’un nouveau nœud racine.
JTree(TreeNode root) Crée un JTree avec le TreeNode spécifié comme racine, qui affiche le nœud racine.

 

Exemple:

Regardons maintenant comment construire un simple JTree. Disons que nous voulons afficher la liste des frameworks backend et frontend de façon hiérarchique.

Le nœud est représenté par la classe TreeNode qui est une interface. L’interface MutableTreeNode hérite cette interface qui représente un nœud mutable. L’API Swing fournit une implémentation de cette interface sous la forme de la classe DefaultMutableTreeNode.

Nous utiliserons la classe DefaultMutableTreeNode pour représenter notre nœud. Cette classe est fournie dans l’API Swing et nous pouvons l’utiliser pour représenter nos nœuds. Cette classe possède une méthode add() pratique qui prend une instance de MutableTreeNode.

Donc, nous allons d’abord créer le nœud racine. Et puis nous pouvons récursivement ajouter des nœuds à cette racine.
 
 

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

public class MyTree
{
	MyTree()
	{
		JFrame f = new JFrame();	
		//nœud racine
		DefaultMutableTreeNode framework = new DefaultMutableTreeNode("Framework");
		//nœud interne 1
		DefaultMutableTreeNode front = new DefaultMutableTreeNode("Front-End");
		//nœud interne 2
		DefaultMutableTreeNode back = new DefaultMutableTreeNode("Back-End");
		//feuille
		DefaultMutableTreeNode autres = new DefaultMutableTreeNode("Autres");
		
		//Ajouter le nœud interne 1 au nœud racine
		framework.add(front);
		//Ajouter les feuille au nœud 1
		DefaultMutableTreeNode angular = new DefaultMutableTreeNode("AngularJS");
		DefaultMutableTreeNode react = new DefaultMutableTreeNode("React.js");
		DefaultMutableTreeNode meteor = new DefaultMutableTreeNode("Meteor.js");
		DefaultMutableTreeNode ember = new DefaultMutableTreeNode("Ember.js ");
		front.add(angular); front.add(react); front.add(meteor); front.add(ember);	

		//Ajouter le nœud interne 2 au nœud racine
		framework.add(back);
		//Ajouter les feuille au nœud 2
		DefaultMutableTreeNode nodejs = new DefaultMutableTreeNode("NodeJS");
		DefaultMutableTreeNode express = new DefaultMutableTreeNode("Express");
		back.add(nodejs); back.add(express);
		
		//Ajouter la feuille au nœud racine
		framework.add(autres);
		
		JTree jt = new JTree(framework);
		f.add(
			new JScrollPane(jt) //Ajouter une barre de défilement
		);
		f.setSize(200,200);
		f.setVisible(true);
	}
	public static void main(String[] args) {
		new MyTree();
	}
}

Sortie:


 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *