From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../hjp5/examples/wstest/Listing3813.java | 83 ++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 Master/Reference Architectures and Patterns/hjp5/examples/wstest/Listing3813.java (limited to 'Master/Reference Architectures and Patterns/hjp5/examples/wstest/Listing3813.java') diff --git a/Master/Reference Architectures and Patterns/hjp5/examples/wstest/Listing3813.java b/Master/Reference Architectures and Patterns/hjp5/examples/wstest/Listing3813.java new file mode 100644 index 0000000..94958e9 --- /dev/null +++ b/Master/Reference Architectures and Patterns/hjp5/examples/wstest/Listing3813.java @@ -0,0 +1,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) { + } + } +} \ No newline at end of file -- cgit v1.2.3