Posted on 2008-03-08 00:50 
kooyee 阅读(1902) 
评论(0)  编辑  收藏  所属分类: 
Swing/Applet 
			 
			
		 
		tab change 事件, 使用到StateChanged Event
 import java.awt.*;
import java.awt.*;
 import java.awt.event.*;
import java.awt.event.*;
 import java.util.StringTokenizer;
import java.util.StringTokenizer;
 import javax.swing.*;
import javax.swing.*;
 import javax.swing.event.*;
import javax.swing.event.*;
 import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionEvent;
 import javax.swing.event.TreeSelectionListener;
import javax.swing.event.TreeSelectionListener;
 import javax.swing.text.JTextComponent;
import javax.swing.text.JTextComponent;
 import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultMutableTreeNode;
 import javax.swing.tree.TreePath;
import javax.swing.tree.TreePath;
 
 
 public class SelectableTree extends JFrame
public class SelectableTree extends JFrame
 implements TreeSelectionListener,ChangeListener
implements TreeSelectionListener,ChangeListener


 {
{
 
 
 protected Component makeJTreePanel(JTree tree)
   protected Component makeJTreePanel(JTree tree)

 
    {
{
 JPanel panel = new JPanel(false);
      JPanel panel = new JPanel(false);
 panel.setLayout(new GridLayout(1, 1));
      panel.setLayout(new GridLayout(1, 1));
 panel.add(new JScrollPane(tree));
      panel.add(new JScrollPane(tree));
 return panel;
      return panel;
 }
   }
 
 
 protected JTree makeJTree(String text)
   protected JTree makeJTree(String text)

 
    {
{
 DefaultMutableTreeNode root
      DefaultMutableTreeNode root 
 = new DefaultMutableTreeNode(text);
               = new DefaultMutableTreeNode(text);
 for(int i = 0; i < 4; i++)
      for(int i = 0; i < 4; i++)

 
       {
{
 DefaultMutableTreeNode child
         DefaultMutableTreeNode child 
 = new DefaultMutableTreeNode(text + i);
               = new DefaultMutableTreeNode(text + i);
 for(int j = 0; j < 4; j++)
         for(int j = 0; j < 4; j++)
 child.add(new DefaultMutableTreeNode(text + i + j));
            child.add(new DefaultMutableTreeNode(text + i + j));
 root.add(child);
         root.add(child);
 }
      }
 
 
 JTree tree = new JTree(root);
      JTree tree = new JTree(root);
 tree.addTreeSelectionListener(this);
      tree.addTreeSelectionListener(this);
 return tree;
      return tree;
 }
   }
 
 
 public void valueChanged(TreeSelectionEvent event)
   public void valueChanged(TreeSelectionEvent event)

 
    {
{
 String temp = event.getPath().toString();
      String temp = event.getPath().toString();
 for(StringTokenizer token = new StringTokenizer(temp, ","); token.hasMoreTokens();)
      for(StringTokenizer token = new StringTokenizer(temp, ","); token.hasMoreTokens();)
 temp = token.nextToken();
         temp = token.nextToken();
 textArea.setText("Current Selection: " + temp.substring(0, temp.length() - 1));
      textArea.setText("Current Selection: " + temp.substring(0, temp.length() - 1));
 }
   }
 
 

 /** *//**Sole method of ChangeListener*/
   /** *//**Sole method of ChangeListener*/
 public void stateChanged(ChangeEvent e)
   public void stateChanged(ChangeEvent e)

 
    {
{
 DefaultSingleSelectionModel dSM
        DefaultSingleSelectionModel dSM 
 = (DefaultSingleSelectionModel)e.getSource();
                = (DefaultSingleSelectionModel)e.getSource();
 int index = dSM.getSelectedIndex();
      int index = dSM.getSelectedIndex();
 String tabName = tabbedPane.getTitleAt(index);
        String tabName = tabbedPane.getTitleAt(index);

 /** *//** I imagine you will do more than this*/
        /** *//** I imagine you will do more than this*/
 if(textArea != null)
        if(textArea != null)
 textArea.setText("Tab Selected: " + tabName);
            textArea.setText("Tab Selected: " + tabName);
 
        
 }
   }

 /** *//****************************************/
   /** *//****************************************/
 
   
 public SelectableTree()
   public SelectableTree()

 
    {
{
 super("ECHO Service Demo");
      super("ECHO Service Demo");
 //WindowUtilities.setNativeLookAndFeel();
      //WindowUtilities.setNativeLookAndFeel();
 //addWindowListener(new ExitListener());
      //addWindowListener(new ExitListener());
 setDefaultCloseOperation(EXIT_ON_CLOSE);
      setDefaultCloseOperation(EXIT_ON_CLOSE);
 Container content = getContentPane();
      Container content = getContentPane();
 tabbedPane = new JTabbedPane();
      tabbedPane = new JTabbedPane();
 
      

 /** *//**add ChangeListener to Model*/
      /** *//**add ChangeListener to Model*/
 tabbedPane.getModel().addChangeListener(this);
      tabbedPane.getModel().addChangeListener(this);

 /** *//*******************************************/
      /** *//*******************************************/
 
      
 Component panel1 = makeJTreePanel(makeJTree("Taxonomy1"));
      Component panel1 = makeJTreePanel(makeJTree("Taxonomy1"));
 tabbedPane.addTab("Taxonomy1", null, panel1, null);
      tabbedPane.addTab("Taxonomy1", null, panel1, null);
 tabbedPane.setSelectedIndex(0);
      tabbedPane.setSelectedIndex(0);
 Component panel2 = makeJTreePanel(makeJTree("Taxonomy2"));
      Component panel2 = makeJTreePanel(makeJTree("Taxonomy2"));
 tabbedPane.addTab("Taxonomy2", null, panel2, null);
      tabbedPane.addTab("Taxonomy2", null, panel2, null);
 Component panel3 = makeJTreePanel(makeJTree("Taxonomy3"));
      Component panel3 = makeJTreePanel(makeJTree("Taxonomy3"));
 tabbedPane.addTab("Taxonomy3", null, panel3, null);
      tabbedPane.addTab("Taxonomy3", null, panel3, null);
 Component panel4 = makeJTreePanel(makeJTree("Taxonomy4"));
      Component panel4 = makeJTreePanel(makeJTree("Taxonomy4"));
 tabbedPane.addTab("Taxonomy4", null, panel4, null);
      tabbedPane.addTab("Taxonomy4", null, panel4, null);
 content.add(tabbedPane, "Center");
      content.add(tabbedPane, "Center");
 textArea = new JTextArea("Services of Current Category: NONE");
      textArea = new JTextArea("Services of Current Category: NONE");
 content.add(textArea, "South");
      content.add(textArea, "South");
 setSize(350, 375);
      setSize(350, 375);
 setVisible(true);
      setVisible(true);
 }
      }
 
 
 public static void main(String args[])
      public static void main(String args[])

 
       {
{
 new SelectableTree().setVisible(true);
         new SelectableTree().setVisible(true);
 }
      }
 
 
 private JTabbedPane tabbedPane;
private JTabbedPane tabbedPane;
 private JTextArea textArea;
private JTextArea textArea;
 }
}

