1 |
package skrueger; |
2 |
|
3 |
/* |
4 |
Definitive Guide to Swing for Java 2, Second Edition |
5 |
By John Zukowski |
6 |
ISBN: 1-893115-78-X |
7 |
Publisher: APress |
8 |
*/ |
9 |
|
10 |
import java.awt.BorderLayout; |
11 |
import java.util.Vector; |
12 |
|
13 |
import javax.swing.JFrame; |
14 |
import javax.swing.JScrollPane; |
15 |
import javax.swing.JTree; |
16 |
|
17 |
import skrueger.swing.checkboxtree.CheckBoxNode; |
18 |
import skrueger.swing.checkboxtree.CheckBoxNodeEditor; |
19 |
import skrueger.swing.checkboxtree.CheckBoxNodeRenderer; |
20 |
import skrueger.swing.checkboxtree.NamedVector; |
21 |
|
22 |
public class CheckBoxNodeTreeSample { |
23 |
public static void main(String args[]) { |
24 |
JFrame frame = new JFrame("CheckBox Tree"); |
25 |
|
26 |
CheckBoxNode accessibilityOptions[] = { |
27 |
new CheckBoxNode( |
28 |
"Move system caret with focus/selection changes", false), |
29 |
new CheckBoxNode("Always expand alt text for images", true) }; |
30 |
CheckBoxNode browsingOptions[] = { |
31 |
new CheckBoxNode("Notify when downloads complete", true), |
32 |
new CheckBoxNode("Disable script debugging", true), |
33 |
new CheckBoxNode("Use AutoComplete", true), |
34 |
new CheckBoxNode("Browse in a new process", false) }; |
35 |
Vector accessVector = new NamedVector("Accessibility", |
36 |
accessibilityOptions); |
37 |
Vector browseVector = new NamedVector("Browsing", browsingOptions); |
38 |
Object rootNodes[] = { accessVector, browseVector }; |
39 |
Vector rootVector = new NamedVector("Root", rootNodes); |
40 |
JTree tree = new JTree(rootVector); |
41 |
|
42 |
CheckBoxNodeRenderer renderer = new CheckBoxNodeRenderer(); |
43 |
tree.setCellRenderer(renderer); |
44 |
|
45 |
tree.setCellEditor(new CheckBoxNodeEditor(tree)); |
46 |
tree.setEditable(true); |
47 |
|
48 |
JScrollPane scrollPane = new JScrollPane(tree); |
49 |
frame.getContentPane().add(scrollPane, BorderLayout.CENTER); |
50 |
frame.setSize(300, 150); |
51 |
frame.setVisible(true); |
52 |
} |
53 |
} |
54 |
|
55 |
|
56 |
|
57 |
|
58 |
|