Een boom is een component die een hiërarchisch overzicht van gegevens presenteert. De gebruiker heeft de mogelijkheid om afzonderlijke subbomen in dit scherm uit te vouwen of samen te vouwen. Bomen worden in Swing door de JTree-klasse geïmplementeerd. Hoewel JTree is verpakt in javax.swing.tree. Dit komt omdat het aantal klassen en interfaces dat nodig is om JTree te ondersteunen behoorlijk groot is. Hieronder volgen een paar stappen uitleg over JTree met een voorbeeld.

Stappen

  1. 1 Maak een instantie van JTree.
  2. 2 Maak een JScrollPane en specificeer de boom als het object dat moet worden gescrolld.
  3. 3 Voeg de boom toe aan het schuifpaneel.
  4. 4 Voeg het schuifdeelvenster toe aan het inhoudspaneel.
  5. 5 Gebruik het voorbeeld voor leerdoeleinden. In het volgende voorbeeld ziet u hoe u een boom maakt en selecties verwerkt.
    • Het programma maakt een DefaultMutableTreeNode-instantie met het label "Opties". Dit is het bovenste knooppunt van de boomhiërarchie.
    • Extra boomknooppunten worden vervolgens gemaakt en de methode add () wordt aangeroepen om deze knooppunten met de boom te verbinden. Een verwijzing naar het bovenste knooppunt in de structuur wordt gegeven als het argument voor de JTree-constructor.
    • De structuur wordt vervolgens weergegeven als argument voor de JScrollPane-constructor. Dit schuifpaneel wordt vervolgens toegevoegd aan het inhoudspaneel.
    • Vervolgens wordt een label gemaakt en toegevoegd aan het inhoudspaneel. De boomselectie wordt weergegeven in dit label.
    • Om selectiegebeurtenissen van de boom te ontvangen, wordt een TreeSelectionListener geregistreerd voor de boom. Binnen de methode valeChanged () wordt het pad naar de huidige selectie verkregen en weergegeven. // Demonstreer JTreeimport java.awt. *; Import javax.swing. *; Import java.awt.event. *; Import java.swing.tree. *; / ** / public class JTreeDemo breidt JApplet uit JTree tree; JLabel jlab ; public void init () try SwingUtilities.invokeAndWait (nieuw Runnable () public void run () makeGUI ();); catch (Uitzondering exc) System.out.println ("Kan niet maken vanwege "+ exc); private void makeGUI () // Maak een topknooppunt van treeDefaultMutableTreeNode top = new DefaultMutableTreeNode (" Opties "); // Maak een subtree van" A ".DefaultMutableTreeNode a = new DefaultMutableTreeNode (" A " ); top.add (a); DefaultMutableTreeNode a1 = new DefaultMutableTreeNode ("A1"); a.add (a1); DefaultMutableTreeNode a2 = new DefaultMutableTreeNode ("A2"); a.add (a2); // Subboom van maken "B" DefaultMutableTreeNode b = new DefaultMutableTreeNode ("B"); top.add (b); DefaultMutableTreeNode b1 = new DefaultMutableTreeNode ("B1"); b.add (b1); DefaultMutableTreeNode b2 = new DefaultMutableTreeNode ("B2"); b.add (b2); // Maak de treetree = nieuwe JTree (boven); // Voeg de boom toe aan een schuifvenster.JScrol lPane jsp = nieuwe JScrollPane (boom); // Voeg het schuifpaneel toe aan het inhoudspaneel.add (jsp); // Voeg het label toe aan het inhoudspaneel.jlab = nieuwe JLabel (); voeg (jlab, BorderLayout.SOUTH) toe ; // Handle tree selection events.tree.addTreeSelectionListener (new TreeSelectionListener () public void valueChanged (TreeSelectionEvent tse) jlab.setText ("Selectie is" + tse.getPath ()););