/* * Pr3.java * * Created on November 19, 2002, 3:27 AM */ /** * * @author Hasan */ import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.tree.*; public class Pr3 extends JFrame { public static int WIDTH = 400; public static int HEIGHT = 400; public static String TITLE = "Project 3"; Container frameContainer; // Swing components JTextField textField = new JTextField(); JScrollPane scrollPane = new JScrollPane(); JTree tree; Renderer renderer = new Renderer(); private DefaultTreeModel model ; DefaultMutableTreeNode pg1 = new DefaultMutableTreeNode("PG1"); DefaultMutableTreeNode p1 = new DefaultMutableTreeNode("p1"); DefaultMutableTreeNode p1_ = new DefaultMutableTreeNode("p1"); DefaultMutableTreeNode p2 = new DefaultMutableTreeNode("p2"); DefaultMutableTreeNode p3 = new DefaultMutableTreeNode("p3"); DefaultMutableTreeNode p4= new DefaultMutableTreeNode("p4"); DefaultMutableTreeNode p5 = new DefaultMutableTreeNode("p5"); DefaultMutableTreeNode p6 = new DefaultMutableTreeNode("p6"); DefaultMutableTreeNode p6_ = new DefaultMutableTreeNode("p6"); DefaultMutableTreeNode p7 = new DefaultMutableTreeNode("p7"); DefaultMutableTreeNode pg2= new DefaultMutableTreeNode("PG2"); DefaultMutableTreeNode pg3= new DefaultMutableTreeNode("PG3"); String[] products = {"PG1","PG2","PG3"}; JComboBox comboBox = new JComboBox(products); JMenuBar menuBar = new JMenuBar(); JMenu fileMenu = new JMenu("File"); JMenuItem fileExit = new JMenuItem("Exit"); public Pr3() { super(TITLE); buildGUI(); setupEventHandlers(); setSize(WIDTH,HEIGHT); show(); } void buildGUI() { setupMenuBar(); setupTree(); layoutComponents(); } void setupMenuBar() { fileMenu.add(fileExit); menuBar.add(fileMenu); setJMenuBar(menuBar); } void setupTree() { pg1.add(p1); pg1.add(p1_); pg1.add(p2); pg1.add(pg2); //pg2.add(p3); pg2.add(p4); pg2.add(p5); pg2.add(pg3); pg3.add(p6); pg3.add(p6_); pg3.add(p7); tree = new JTree((TreeNode)pg1); } public void layoutComponents() { frameContainer = getContentPane(); frameContainer.setLayout(new BorderLayout()); tree.setCellRenderer(renderer); tree.addTreeSelectionListener(new TreeHandler()); scrollPane.getViewport().add(tree); frameContainer.add("North",comboBox); frameContainer.add("Center",scrollPane); frameContainer.add("South",textField); } void setupEventHandlers() { addWindowListener(new WindowHandler()); fileExit.addActionListener(new MenuItemHandler()); comboBox.addActionListener(new ComboListener()); } public static void main(String[] args) { Pr3 app = new Pr3(); } public class WindowHandler extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } } public class MenuItemHandler implements ActionListener { public void actionPerformed(ActionEvent e) { String cmd = e.getActionCommand(); if(cmd.equals("Exit")) System.exit(0); } } public class TreeHandler implements TreeSelectionListener { public void valueChanged(TreeSelectionEvent e) { TreePath path = e.getPath(); String text = path.getPathComponent(path.getPathCount()-1).toString(); textField.setText(text); } } class ComboListener implements ActionListener { public void actionPerformed(java.awt.event.ActionEvent e) { switch(comboBox.getSelectedIndex()){ case 0:{tree = new JTree((TreeNode)pg1); break;} case 1:{tree = new JTree((TreeNode)pg2); break;} case 2:{tree = new JTree((TreeNode)pg3); break;} } DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer)tree.getCellRenderer(); renderer.setLeafIcon(null); renderer.setClosedIcon(null); renderer.setOpenIcon(null); scrollPane.getViewport().add(tree); tree.addTreeSelectionListener(new TreeHandler()); } } class Renderer extends JLabel implements TreeCellRenderer { public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { setText(value.toString()+" "); return this; } } }