MTreeDialog.java
上传用户:njlgjx
上传日期:2022-08-07
资源大小:9105k
文件大小:5k
源码类别:

图形图象

开发平台:

Java

  1. /*
  2.  * MTreeDialog.java
  3.  *
  4.  * Created on 2008年7月1日, 下午5:05
  5.  */
  6. package com.mwq.map.mwing;
  7. import com.mwq.map.dao.Dao;
  8. import java.util.Iterator;
  9. import java.util.Vector;
  10. import javax.swing.JTextField;
  11. import javax.swing.tree.DefaultTreeModel;
  12. /**
  13.  *
  14.  * @author  Administrator
  15.  */
  16. public class MTreeDialog extends javax.swing.JDialog {
  17.     private DefaultTreeModel treeModel;
  18.     private JTextField textField;
  19.     private Dao dao = Dao.getInstance();
  20.     /** Creates new form MTreeDialog */
  21.     public MTreeDialog(java.awt.Frame parent, boolean modal, JTextField textField) {
  22.         super(parent, modal);
  23.         this.textField = textField;
  24.         initComponents();
  25.         initTree();
  26.     }
  27.     private void initTree() {
  28.         MTreeNode root = new MTreeNode(0, "");
  29.         loadChildNode(root);
  30.         treeModel = new DefaultTreeModel(root, true);
  31.         tree.setModel(treeModel);
  32.     }
  33.     private void loadChildNode(MTreeNode node) {
  34.         Vector sorts = dao.selectChildSortByFatherId(node.getId());
  35.         for (Iterator it = sorts.iterator(); it.hasNext();) {
  36.             Vector sort = (Vector) it.next();
  37.             node.add(new MTreeNode((Integer) sort.get(0), sort.get(2)));
  38.         }
  39.         node.setLoad(true);
  40.     }
  41.     /** This method is called from within the constructor to
  42.      * initialize the form.
  43.      * WARNING: Do NOT modify this code. The content of this method is
  44.      * always regenerated by the Form Editor.
  45.      */
  46.     @SuppressWarnings("unchecked")
  47.     // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
  48.     private void initComponents() {
  49.         scrollPane = new javax.swing.JScrollPane();
  50.         tree = new javax.swing.JTree();
  51.         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
  52.         setUndecorated(true);
  53.         tree.setRootVisible(false);
  54.         tree.setShowsRootHandles(true);
  55.         tree.addTreeWillExpandListener(new javax.swing.event.TreeWillExpandListener() {
  56.             public void treeWillCollapse(javax.swing.event.TreeExpansionEvent evt)throws javax.swing.tree.ExpandVetoException {
  57.             }
  58.             public void treeWillExpand(javax.swing.event.TreeExpansionEvent evt)throws javax.swing.tree.ExpandVetoException {
  59.                 treeTreeWillExpand(evt);
  60.             }
  61.         });
  62.         tree.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
  63.             public void valueChanged(javax.swing.event.TreeSelectionEvent evt) {
  64.                 treeValueChanged(evt);
  65.             }
  66.         });
  67.         scrollPane.setViewportView(tree);
  68.         javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
  69.         getContentPane().setLayout(layout);
  70.         layout.setHorizontalGroup(
  71.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  72.             .addComponent(scrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 273, Short.MAX_VALUE)
  73.         );
  74.         layout.setVerticalGroup(
  75.             layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  76.             .addComponent(scrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 210, Short.MAX_VALUE)
  77.         );
  78.         pack();
  79.     }// </editor-fold>//GEN-END:initComponents
  80. private void treeTreeWillExpand(javax.swing.event.TreeExpansionEvent evt)throws javax.swing.tree.ExpandVetoException {//GEN-FIRST:event_treeTreeWillExpand
  81. // TODO add your handling code here:    
  82.     MTreeNode lastNode = (MTreeNode) evt.getPath().getLastPathComponent();
  83.     if (!lastNode.isLoad()) {
  84.         loadChildNode(lastNode);
  85.         treeModel.reload(lastNode);
  86.     }
  87. }//GEN-LAST:event_treeTreeWillExpand
  88. private void treeValueChanged(javax.swing.event.TreeSelectionEvent evt) {//GEN-FIRST:event_treeValueChanged
  89. // TODO add your handling code here:
  90.     MTreeNode selectNode = (MTreeNode) tree.getLastSelectedPathComponent();
  91.     textField.setText(selectNode.getUserObject().toString());
  92.     textField.setName(selectNode.getId() + "");
  93.     this.dispose();
  94. }//GEN-LAST:event_treeValueChanged
  95.     /**
  96.      * @param args the command line arguments
  97.      */
  98.     public static void main(String args[]) {
  99.         java.awt.EventQueue.invokeLater(new Runnable() {
  100.             public void run() {
  101.                 MTreeDialog dialog = new MTreeDialog(new javax.swing.JFrame(), true, null);
  102.                 dialog.addWindowListener(new java.awt.event.WindowAdapter() {
  103.                     public void windowClosing(java.awt.event.WindowEvent e) {
  104.                         System.exit(0);
  105.                     }
  106.                 });
  107.                 dialog.setVisible(true);
  108.             }
  109.         });
  110.     }
  111.     // Variables declaration - do not modify//GEN-BEGIN:variables
  112.     private javax.swing.JScrollPane scrollPane;
  113.     private javax.swing.JTree tree;
  114.     // End of variables declaration//GEN-END:variables
  115. }