kooyee ‘s blog

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

          【JTabbedPane】tab change事件

          Posted on 2008-03-08 00:50 kooyee 閱讀(1890) 評(píng)論(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;
          }


          主站蜘蛛池模板: 柞水县| 探索| 大邑县| 保山市| 柞水县| 蓬溪县| 双江| 梧州市| 原平市| 太湖县| 阿坝县| 澄江县| 甘德县| 晋州市| 依安县| 景宁| 黄大仙区| 甘孜| 古浪县| 富顺县| 仙游县| 合肥市| 教育| 麟游县| 许昌县| 卢龙县| 利川市| 右玉县| 革吉县| 丹阳市| 普定县| 虎林市| 甘洛县| 云林县| 漳州市| 金堂县| 商南县| 元氏县| 广宗县| 浑源县| 阳信县|