The JTree Class
Now
that you’ve seen all of the tree and node models and some of
the default implementations, let’s look at the visual
representation we can give them. The JTree class
can build up trees out of several different objects, including a
TreeModel. JTree extends
directly from JComponent and just represents the
visual side of any valid tree structure.
Here’s the source
code that built the expression tree example in Figure 17.5. In this example, the
init() method does all of the real work by
creating a series of OpNode nodes and several
Integer objects and connecting them in a valid
expression. That tree model is passed to the JTree
constructor, which in turn creates the component that we add to the
content pane. Like many other components, JTree
does not scroll automatically, so you would need to place it in a
JScrollPane if you expected the tree to be large.
(JTree implements Scrollable,
which allows a JScrollPane to be intelligent about
scrolling.)
// ExprTree1.java // An expression tree for holding algebraic expressions, built up using // ExpressionTreeModel for use with a JTree object. // import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; import javax.swing.tree.*; import javax.swing.event.*; public class ExprTree1 extends JFrame implements TreeExpansionListener { JTree tree; ExpressionTreeModel treeModel; OpNode[] operators = new OpNode[4]; Integer[] operands = new Integer[5]; public ExprTree1() { super("Demo Expression Tree"); ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access