Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class NodeType {
- private String nodeType ;
- public NodeType (String nodeType ) {
- this.nodeType = nodeType ;
- }
- public String getNodeType() {
- return this.nodeType ;
- }
- public void setNodeType (String nodeType) {
- this.nodeType = nodeType ;
- }
- }
- btnSave = new JButton("Save");
- btnSave.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- DefaultMutableTreeNode node = (DefaultMutableTreeNode)
- DynamicTree.tree.getLastSelectedPathComponent();
- String txt = desc.getTxt() ;
- Object nodeInfo = node.getUserObject();
- if (node.isLeaf()) {
- ((NodeType) nodeInfo).setNodeType(txt );
- JButton change = new JButton("Change");
- change.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
- if (node == null) {
- return;
- }
- Object nodeInfo = node.getUserObject();
- if (node.isLeaf()) {
- BookInfo book = (BookInfo) nodeInfo;
- book.bookName = "New Name";
- ((DefaultTreeModel)tree.getModel()).nodeChanged(node);
- }
- if (DEBUG) {
- System.out.println(nodeInfo.toString());
- }
- }
- });
- import java.awt.BorderLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.JFrame;
- import javax.swing.JPanel;
- import javax.swing.JScrollPane;
- import javax.swing.UIManager;
- import javax.swing.JTree;
- import javax.swing.tree.DefaultMutableTreeNode;
- import javax.swing.tree.TreeSelectionModel;
- import javax.swing.event.TreeSelectionEvent;
- import javax.swing.event.TreeSelectionListener;
- import java.net.URL;
- import javax.swing.JButton;
- import javax.swing.tree.DefaultTreeModel;
- public class TreeDemo extends JPanel {
- private JTree tree;
- private static boolean DEBUG = false;
- //Optionally play with line styles. Possible values are
- //"Angled" (the default), "Horizontal", and "None".
- private static boolean playWithLineStyle = false;
- private static String lineStyle = "Horizontal";
- //Optionally set the look and feel.
- private static boolean useSystemLookAndFeel = false;
- public TreeDemo() {
- super(new BorderLayout());
- //Create the nodes.
- DefaultMutableTreeNode top
- = new DefaultMutableTreeNode("The Java Series");
- createNodes(top);
- //Create a tree that allows one selection at a time.
- tree = new JTree();
- tree.setModel(new DefaultTreeModel(top));
- tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
- if (playWithLineStyle) {
- System.out.println("line style = " + lineStyle);
- tree.putClientProperty("JTree.lineStyle", lineStyle);
- }
- //Create the scroll pane and add the tree to it.
- JScrollPane treeView = new JScrollPane(tree);
- add(treeView);
- JButton change = new JButton("Change");
- change.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
- if (node == null) {
- return;
- }
- Object nodeInfo = node.getUserObject();
- if (node.isLeaf()) {
- BookInfo book = (BookInfo) nodeInfo;
- book.bookName = "New Name";
- ((DefaultTreeModel)tree.getModel()).nodeChanged(node);
- }
- if (DEBUG) {
- System.out.println(nodeInfo.toString());
- }
- }
- });
- add(change, BorderLayout.SOUTH);
- }
- private class BookInfo {
- public String bookName;
- public BookInfo(String book) {
- bookName = book;
- }
- public String toString() {
- return bookName;
- }
- }
- private void createNodes(DefaultMutableTreeNode top) {
- DefaultMutableTreeNode category = null;
- DefaultMutableTreeNode book = null;
- category = new DefaultMutableTreeNode("Books for Java Programmers");
- top.add(category);
- //original Tutorial
- book = new DefaultMutableTreeNode(new BookInfo("The Java Tutorial: A Short Course on the Basics"));
- category.add(book);
- //Tutorial Continued
- book = new DefaultMutableTreeNode(new BookInfo("The Java Tutorial Continued: The Rest of the JDK"));
- category.add(book);
- //JFC Swing Tutorial
- book = new DefaultMutableTreeNode(new BookInfo("The JFC Swing Tutorial: A Guide to Constructing GUIs"));
- category.add(book);
- //Bloch
- book = new DefaultMutableTreeNode(new BookInfo("Effective Java Programming Language Guide"));
- category.add(book);
- //Arnold/Gosling
- book = new DefaultMutableTreeNode(new BookInfo("The Java Programming Language"));
- category.add(book);
- //Chan
- book = new DefaultMutableTreeNode(new BookInfo("The Java Developers Almanac"));
- category.add(book);
- category = new DefaultMutableTreeNode("Books for Java Implementers");
- top.add(category);
- //VM
- book = new DefaultMutableTreeNode(new BookInfo("The Java Virtual Machine Specification"));
- category.add(book);
- //Language Spec
- book = new DefaultMutableTreeNode(new BookInfo("The Java Language Specification"));
- category.add(book);
- }
- /**
- * Create the GUI and show it. For thread safety, this method should be
- * invoked from the event dispatch thread.
- */
- private static void createAndShowGUI() {
- if (useSystemLookAndFeel) {
- try {
- UIManager.setLookAndFeel(
- UIManager.getSystemLookAndFeelClassName());
- } catch (Exception e) {
- System.err.println("Couldn't use system look and feel.");
- }
- }
- //Create and set up the window.
- JFrame frame = new JFrame("TreeDemo");
- frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- //Add content to the window.
- frame.add(new TreeDemo());
- //Display the window.
- frame.pack();
- frame.setLocationByPlatform(true);
- frame.setVisible(true);
- }
- public static void main(String[] args) {
- //Schedule a job for the event dispatch thread:
- //creating and showing this application's GUI.
- javax.swing.SwingUtilities.invokeLater(new Runnable() {
- public void run() {
- createAndShowGUI();
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement