kooyee ‘s blog

          開源軟件, 眾人努力的結晶, 全人類的共同財富
          posts - 103, comments - 55, trackbacks - 0, articles - 66
             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          【JTabbedPane】tab change事件

          Posted on 2008-03-08 00:50 kooyee 閱讀(1889) 評論(0)  編輯  收藏 所屬分類: Swing/Applet
          tab change 事件, 使用到StateChanged Event
          import java.awt.*;
          import java.awt.event.*;
          import java.util.StringTokenizer;
          import javax.swing.*;
          import javax.swing.event.*;
          import javax.swing.event.TreeSelectionEvent;
          import javax.swing.event.TreeSelectionListener;
          import javax.swing.text.JTextComponent;
          import javax.swing.tree.DefaultMutableTreeNode;
          import javax.swing.tree.TreePath;
           
          public class SelectableTree extends JFrame
          implements TreeSelectionListener,ChangeListener
          {
           
             
          protected Component makeJTreePanel(JTree tree)
             
          {
                JPanel panel 
          = new JPanel(false);
                panel.setLayout(
          new GridLayout(11));
                panel.add(
          new JScrollPane(tree));
                
          return panel;
             }

           
             
          protected JTree makeJTree(String text)
             
          {
                DefaultMutableTreeNode root 
                         
          = new DefaultMutableTreeNode(text);
                
          for(int i = 0; i < 4; i++)
                
          {
                   DefaultMutableTreeNode child 
                         
          = new DefaultMutableTreeNode(text + i);
                   
          for(int j = 0; j < 4; j++)
                      child.add(
          new DefaultMutableTreeNode(text + i + j));
                   root.add(child);
                }

           
                JTree tree 
          = new JTree(root);
                tree.addTreeSelectionListener(
          this);
                
          return tree;
             }

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

           
             
          /**Sole method of ChangeListener*/
             
          public void stateChanged(ChangeEvent e)
             
          {
                  DefaultSingleSelectionModel dSM 
                          
          = (DefaultSingleSelectionModel)e.getSource();
                
          int index = dSM.getSelectedIndex();
                  String tabName 
          = tabbedPane.getTitleAt(index);
                  
          /** I imagine you will do more than this*/
                  
          if(textArea != null)
                      textArea.setText(
          "Tab Selected: " + tabName);
                  
             }

             
          /****************************************/
             
             
          public SelectableTree()
             
          {
                
          super("ECHO Service Demo");
                
          //WindowUtilities.setNativeLookAndFeel();
                
          //addWindowListener(new ExitListener());
                setDefaultCloseOperation(EXIT_ON_CLOSE);
                Container content 
          = getContentPane();
                tabbedPane 
          = new JTabbedPane();
                
                
          /**add ChangeListener to Model*/
                tabbedPane.getModel().addChangeListener(
          this);
                
          /*******************************************/
                
                Component panel1 
          = makeJTreePanel(makeJTree("Taxonomy1"));
                tabbedPane.addTab(
          "Taxonomy1"null, panel1, null);
                tabbedPane.setSelectedIndex(
          0);
                Component panel2 
          = makeJTreePanel(makeJTree("Taxonomy2"));
                tabbedPane.addTab(
          "Taxonomy2"null, panel2, null);
                Component panel3 
          = makeJTreePanel(makeJTree("Taxonomy3"));
                tabbedPane.addTab(
          "Taxonomy3"null, panel3, null);
                Component panel4 
          = makeJTreePanel(makeJTree("Taxonomy4"));
                tabbedPane.addTab(
          "Taxonomy4"null, panel4, null);
                content.add(tabbedPane, 
          "Center");
                textArea 
          = new JTextArea("Services of Current Category: NONE");
                content.add(textArea, 
          "South");
                setSize(
          350375);
                setVisible(
          true);
                }

           
                
          public static void main(String args[])
                
          {
                   
          new SelectableTree().setVisible(true);
                }

           
          private JTabbedPane tabbedPane;
          private JTextArea textArea;
          }


          主站蜘蛛池模板: 大庆市| 永登县| 平邑县| 攀枝花市| 准格尔旗| 侯马市| 长垣县| 平潭县| 防城港市| 定西市| 新晃| 秦安县| 永登县| 思南县| 来宾市| 潞城市| 石渠县| 潢川县| 广丰县| 灵丘县| 屏南县| 仁布县| 吕梁市| 瑞昌市| 株洲县| 双桥区| 盐亭县| 英超| 平定县| 砚山县| 忻州市| 罗源县| 高州市| 临桂县| 吉首市| 嘉荫县| 中卫市| 陆河县| 兴隆县| 华容县| 西丰县|