在樹節(jié)點上顯示用戶對象的某個字段值

          開發(fā)工具:Eclipse3.2+VisualEditor插件

          import  java.awt.BorderLayout;
          import  javax.swing.SwingUtilities;
          import  javax.swing.JPanel;
          import  javax.swing.JFrame;
          import  java.awt.GridBagLayout;
          import  javax.swing.JTree;
          import  javax.swing.tree.DefaultMutableTreeNode;
          import  javax.swing.tree.DefaultTreeModel;
          import  javax.swing.tree.TreeNode;
          import  javax.swing.tree.TreePath;
          import  java.awt.GridBagConstraints;
          import  javax.swing.JButton;
          import  java.awt.FlowLayout;
          // 在樹節(jié)點上顯示用戶對象的某個字段值。
          public   class  IDTree
          {

              
          private  JFrame jFrame  =   null ;

              
          private  JPanel jContentPane  =   null ;

              
          private  JPanel jPanel  =   null ;

              
          private  JTree jTree  =   null ;

              
          private  JPanel jPanel1  =   null ;

              
          private  JButton jButton  =   null ;

              
          private  JButton jButton1  =   null ;

              
          private  DefaultTreeModel treeModel;

              
          private  DefaultMutableTreeNode root;

              
          private   int  id;


              
          /**
               * This method initializes jPanel
               * 
               * 
          @return  javax.swing.JPanel
               
          */

              
          private  JPanel getJPanel()
              
          {
                  
          if  (jPanel  ==   null )
                  
          {
                      GridBagConstraints gridBagConstraints 
          =   new  GridBagConstraints();
                      gridBagConstraints.fill 
          =  GridBagConstraints.BOTH;
                      gridBagConstraints.gridy 
          =   0 ;
                      gridBagConstraints.weightx 
          =   1.0 ;
                      gridBagConstraints.weighty 
          =   1.0 ;
                      gridBagConstraints.gridheight 
          =   1 ;
                      gridBagConstraints.gridx 
          =   0 ;
                      jPanel 
          =   new  JPanel();
                      jPanel.setLayout(
          new  GridBagLayout());
                      jPanel.add(getJTree(), gridBagConstraints);
                  }

                  
          return  jPanel;
              }


              
          /**
               * This method initializes jTree
               * 
               * 
          @return  javax.swing.JTree
               
          */

              
          private  JTree getJTree()
              
          {
                  
          if  (jTree  ==   null )
                  
          {
                      Person person 
          =   new  Person();
                      root 
          =   new  DefaultMutableTreeNode(person);
                      treeModel 
          =   new  DefaultTreeModel(root);
                      jTree 
          =   new  JTree(treeModel);
                      jTree.setEditable(
          true );
                      jTree.setShowsRootHandles(
          true );
                      jTree
                              .addTreeSelectionListener(
          new  javax.swing.event.TreeSelectionListener()
                              
          {
                                  
          public   void  valueChanged(
                                          javax.swing.event.TreeSelectionEvent e)
                                  
          {
                                      
          //  TODO Auto-generated 選擇樹節(jié)點事件
                                      TreePath path  =  jTree.getSelectionPath();
                                      
          if  (path  ==   null )
                                          
          return ;
                                      DefaultMutableTreeNode selectedNode 
          =  (DefaultMutableTreeNode) path
                                              .getLastPathComponent();
                                      Person person 
          =  (Person) selectedNode
                                              .getUserObject();
                                      System.out.println(
          " ID: "   + person.getId()
                                              
          +   "  name: "   +  person.getName()
                                              
          +   "  level: "   +  person.getLevel());
                                  }

                              }
          );
                  }

                  
          return  jTree;
              }


              
          /**
               * This method initializes jPanel1
               * 
               * 
          @return  javax.swing.JPanel
               
          */

              
          private  JPanel getJPanel1()
              
          {
                  
          if  (jPanel1  ==   null )
                  
          {
                      jPanel1 
          =   new  JPanel();
                      jPanel1.setLayout(
          new  FlowLayout());
                      jPanel1.add(getJButton(), 
          null );
                      jPanel1.add(getJButton1(), 
          null );
                  }

                  
          return  jPanel1;
              }


              
          /**
               * This method initializes jButton
               * 
               * 
          @return  javax.swing.JButton
               
          */

              
          private  JButton getJButton()
              
          {
                  
          if  (jButton  ==   null )
                  
          {
                      jButton 
          =   new  JButton();
                      jButton.setText(
          " 增加人員 " );
                      jButton.addActionListener(
          new  java.awt.event.ActionListener()
                      
          {
                          
          public   void  actionPerformed(java.awt.event.ActionEvent e)
                          
          {
                              
          //  TODO Auto-generated 增加節(jié)點事件
                              DefaultMutableTreeNode selectedNode  =  (DefaultMutableTreeNode) jTree.getLastSelectedPathComponent();
                              
          if  (selectedNode  ==   null )
                                  
          return ;
                              Person person 
          =   new  Person();
                              person.setId(
          ++ id);
                              DefaultMutableTreeNode newNode 
          =   new  DefaultMutableTreeNode(person);
                              treeModel.insertNodeInto(newNode, selectedNode,selectedNode.getChildCount());
                              TreeNode[] nodes 
          =  treeModel.getPathToRoot(newNode);
                              TreePath path 
          =   new  TreePath(nodes);
                              jTree.scrollPathToVisible(path);
                          }

                      }
          );
                  }

                  
          return  jButton;
              }


              
          /**
               * This method initializes jButton1
               * 
               * 
          @return  javax.swing.JButton
               
          */

              
          private  JButton getJButton1()
              
          {
                  
          if  (jButton1  ==   null )
                  
          {
                      jButton1 
          =   new  JButton();
                      jButton1.setText(
          " 刪除人員 " );
                      jButton1.addActionListener(
          new  java.awt.event.ActionListener()
                      
          {
                          
          public   void  actionPerformed(java.awt.event.ActionEvent e)
                          
          {
                              
          //  TODO Auto-generated 刪除節(jié)點事件
                              DefaultMutableTreeNode selectedNode  =  (DefaultMutableTreeNode) jTree .getLastSelectedPathComponent();
                              
          if  (selectedNode  !=   null &&  selectedNode.getParent()  !=   null )
                              
          {
                                  treeModel.removeNodeFromParent(selectedNode);
                              }

                          }

                      }
          );
                  }

                  
          return  jButton1;
              }


              
              
          /**
               * 
          @param  args
               
          */

              
          public   static   void  main(String[] args)
              
          {
                  
          //  TODO Auto-generated method stub
                  SwingUtilities.invokeLater( new  Runnable()
                  
          {
                      
          public   void  run()
                      
          {
                          IDTree application 
          =   new  IDTree();
                          application.getJFrame().setVisible(
          true );
                      }

                  }
          );
              }


              
          /**
               * This method initializes jFrame
               * 
               * 
          @return  javax.swing.JFrame
               
          */

              
          private  JFrame getJFrame()
              
          {
                  
          if  (jFrame  ==   null )
                  
          {
                      jFrame 
          =   new  JFrame();
                      jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                      jFrame.setSize(
          800 600 );
                      jFrame.setLocation(
          100 100 );
                      jFrame.setContentPane(getJContentPane());
                      jFrame.setTitle(
          " 人員級別樹 " );
                  }

                  
          return  jFrame;
              }


              
          /**
               * This method initializes jContentPane
               * 
               * 
          @return  javax.swing.JPanel
               
          */

              
          private  JPanel getJContentPane()
              
          {
                  
          if  (jContentPane  ==   null )
                  
          {
                      jContentPane 
          =   new  JPanel();
                      jContentPane.setLayout(
          new  BorderLayout());
                      jContentPane.add(getJPanel(), BorderLayout.CENTER);
                      jContentPane.add(getJPanel1(), BorderLayout.SOUTH);
                  }

                  
          return  jContentPane;
              }


          }


          class  Person
          {
              
          private   int  id; // 人員加入順序的編號,從1開始。

              
          private   int  name; // 人員姓名,暫時不設(shè)置。

              
          private   int  level; // 人員等級,暫時不設(shè)置。
              
              
              
          public   int  getId()
              
          {
                  
          return  id;
              }



              
          public   void  setId( int  id)
              
          {
                  
          this .id  =  id;
              }



              
          public   int  getLevel()
              
          {
                  
          return  level;
              }



              
          public   void  setLevel( int  level)
              
          {
                  
          this .level  =  level;
              }



              
          public   int  getName()
              
          {
                  
          return  name;
              }



              
          public   void  setName( int  name)
              
          {
                  
          this .name  =  name;
              }



              @Override
              
          public  String toString() // 關(guān)鍵步驟,通過重寫Object的toString(),來實現(xiàn)在樹節(jié)點上顯示加入人員的順序編號。
               {
                  
          //  TODO Auto-generated method stub
                   return  String.valueOf(id);
              }


          }


           



          posted on 2007-03-02 18:23 我為J狂 閱讀(824) 評論(0)  編輯  收藏 所屬分類: 圖形用戶界面

          <2007年3月>
          25262728123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(11)

          隨筆分類(48)

          文章分類(29)

          常去逛逛

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 长泰县| 邵阳市| 贵阳市| 和顺县| 东乡族自治县| 汾西县| 延津县| 延长县| 梨树县| 德化县| 沅江市| 宜阳县| 丽水市| 荣成市| 固镇县| 迁安市| 凤山市| 丽江市| 泗水县| 边坝县| 通许县| 曲靖市| 罗山县| 晋州市| 宾川县| 厦门市| 澳门| 化德县| 达尔| 乌拉特前旗| 阳城县| 玉林市| 民勤县| 辛集市| 北宁市| 通榆县| 北票市| 乐至县| 仲巴县| 安阳县| 呼图壁县|