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"); ...
Get Java Swing now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.