blob: 94958e974409c128b70942c543dac3e115151cd9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
/* Listing3813.java */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
public class Listing3813
extends JFrame
implements ActionListener
{
protected DefaultMutableTreeNode root;
protected DefaultTreeModel treeModel;
protected JTree tree;
public Listing3813()
{
super("JTree 3");
addWindowListener(new WindowClosingAdapter(true));
//JTree erzeugen und Einfachselektion aktivieren
root = new DefaultMutableTreeNode("Root");
treeModel = new DefaultTreeModel(root);
tree = new JTree(treeModel);
TreeSelectionModel tsm = new DefaultTreeSelectionModel();
tsm.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
tree.setSelectionModel(tsm);
tree.setRootVisible(true);
//JTree einf�gen
Container cp = getContentPane();
cp.add(new JScrollPane(tree), BorderLayout.CENTER);
//ButtonPanel
JPanel panel = new JPanel(new FlowLayout());
String[] buttons = new String[]{"AddChild", "Delete", "Change"};
for (int i = 0; i < buttons.length; ++i) {
JButton button = new JButton(buttons[i]);
button.addActionListener(this);
panel.add(button);
}
cp.add(panel, BorderLayout.SOUTH);
}
public void actionPerformed(ActionEvent event)
{
String cmd = event.getActionCommand();
TreePath tp = tree.getLeadSelectionPath();
if (tp != null) {
DefaultMutableTreeNode node;
node = (DefaultMutableTreeNode)tp.getLastPathComponent();
if (cmd.equals("AddChild")) {
DefaultMutableTreeNode child;
child = new DefaultMutableTreeNode("child");
treeModel.insertNodeInto(child, node, node.getChildCount());
TreeNode[] path = treeModel.getPathToRoot(node);
tree.expandPath(new TreePath(path));
} else if (cmd.equals("Delete")) {
if (node != root) {
TreeNode parent = node.getParent();
TreeNode[] path = treeModel.getPathToRoot(parent);
treeModel.removeNodeFromParent(node);
tree.setSelectionPath(new TreePath(path));
}
} else if (cmd.equals("Change")) {
String name = node.toString();
node.setUserObject(name + "C");
treeModel.nodeChanged(node);
}
}
}
public static void main(String[] args)
{
try {
String plaf = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
UIManager.setLookAndFeel(plaf);
Listing3813 frame = new Listing3813();
frame.setLocation(100, 100);
frame.setSize(300, 300);
frame.setVisible(true);
} catch (Exception e) {
}
}
}
|