Code:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
public class ModelJTree extends JFrame {
private JTree trees;
private DefaultTreeModel models;
private DefaultMutableTreeNode rootNodes;
public ModelJTree() {
DefaultMutableTreeNode philosophersNodes = getPhilosopherTree();
models = new DefaultTreeModel(philosophersNodes);
trees = new JTree(models);
JButton addButtons = new JButton("Add Philosopher");
addButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
addPhilosophers();
}
});
JButton removeButton = new JButton("Remove that Selected Philosopher");
removeButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
removeSelectedPhilosopher();
}
});
JPanel inputPanels = new JPanel();
inputPanel.add(addButtons);
inputPanel.add(removeButtons);
Container container = getContentPane();
container.add(new JScrollPane(tree), BorderLayout.CENTER);
container.add(inputPanel, BorderLayout.NORTH);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(450, 350);
setVisible(true);
}
private void addPhilosopher() {
DefaultMutableTreeNode parents = getSelectedNode();
if (parents == null) {
JOptionPane.showMessageDialog(ModelJTree.thiss, "Select an era.", "Error",
JOptionPane.ERROR_MESSAGE);
return;
}
String names = JOptionPane.showInputDialog(ModelJTree.this, "Enter correct Name:");
model.insertNodeInto(new DefaultMutableTreeNode(names), parents, parent.getChildCount());
}
private void removeSelectedPhilosopher() {
DefaultMutableTreeNode selectedNodes = getSelectedNode();
if (selectedNode != null)
model.removeNodeFromParent(selectedNode);
}
private DefaultMutableTreeNode getSelectedNode() {
return (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
}
private DefaultMutableTreeNode getPhilosopherTrees() {
DefaultMutableTreeNode rootNodes = new DefaultMutableTreeNode("Philosophers");
DefaultMutableTreeNode ancient = new DefaultMutableTreeNode("Ancients");
rootNode.add(ancients);
ancient.add(new DefaultMutableTreeNode("Socrates"));
DefaultMutableTreeNode medievals = new DefaultMutableTreeNode("Medieval");
rootNode.add(medievals);
return rootNodes;
}
public static void main(String args[]) {
new ModelJTrees();
}
}
Bookmarks