⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dynamictree.java

📁 基于Java的地图数据管理软件。使用MySQL数据库管理系统。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:

  public String getRowValue(int row) {
    int count = rootNode.getChildCount();
    if (count > 1) {

    }

    return rootNode.getChildAt(row).toString();
  }

  public Object getRowObject(Object parent, int index) {

    return "";
  }

  public void setSelectedTreeItem(boolean tracks, int pos) {
    int row = 0;
    if (tracks) {
      tree.expandRow(1);
      row = pos + 2;
    }
    else {
      if (tree.isExpanded(1)) {
        tree.expandRow(2 + ItemValue.tracksNum);
        row = pos + 3 + ItemValue.tracksNum;
      }
      else {
        tree.expandRow(2);
        row = pos + 3;
      }
    }
    tree.setSelectionRow(row);
  }

  public void getRow(KeyEvent e, int alt) {
    int selectedRow = 0;
    if ( (e.getKeyCode() == KeyEvent.VK_UP) ||
        (e.getKeyCode() == KeyEvent.VK_DOWN)) {
//      System.out.print("KeyEvent:"+this.tree.getSelectionCount());
      int[] i = tree.getSelectionRows();
      //

      if (e.getKeyCode() == KeyEvent.VK_UP) {
        selectedRow = i[0] - 1;
        if (selectedRow < 0) {
          selectedRow = 0;
        }
      }
      else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
        //这里要写好:情况一,当到达航点时,会不会产生n和n+1;二,进入航点末尾产生n和n+1;
        selectedRow = i[0] + 1;
        if (selectedRow >= tree.getRowCount()) {
          selectedRow = selectedRow - 1;
        }
      }
      if (tree.isCollapsed(1)) {
        selectedRow = selectedRow + ItemValue.tracksNum;
      }
      //System.out.println(selectedRow);
      MyTreeModelListener mtml = new MyTreeModelListener(this);
      if (mtml.ifTracks(selectedRow)) {
        if (fmUse) {
          fm.jTabbedPane1.setSelectedIndex(0);
          fm.setTrack(mtml.setPos(selectedRow));

          // fo.drawALine(mtml.setPos(selectedRow));
        }
      }
      else {
        if (fmUse) {
          fm.jTabbedPane1.setSelectedIndex(1);
          fm.setIsInitTrue();
          fm.setWaypoint(mtml.setPos(selectedRow));
        }
      }

      //for(int i=0;i<test.length;i++){
      //System.out.println("test:"+selectedRow);
      //}
    }

    else if ( (e.getKeyChar() == 's') && alt != -1) {
      CLFrame clf = new CLFrame(this.thisNode);
      clf.setFm(this.fm);
      clf.setFo(this.fo);
      if (this.fm != null) {
        this.fm.setCLFrame(clf);
      }
    }
    else if ( (e.getKeyChar() == 'd') && alt != -1) {
      if (fmUse) {
        fm.jButton14_actionPerformed(null);
      }
    }
//    System.out.println("e.getKeyChar():" + e.getKeyChar() + ",alt:" + alt);
    //this.tree.getSelectionCount();

  }

  void jMenuItem_actionPerformed(ActionEvent e) {

    if (e.getActionCommand().equals("Delete_Waypoint")) {
      if (fmUse) {
        fm.jButtonWaypointDelete_actionPerformed(e);
      }
    }
    else if (e.getActionCommand().equals("Fresh_Waypoint")) {
      if (fmUse) {
        fm.memoryShow();
      }
      this.expandTree(false);
    }
    else if (e.getActionCommand().equals("Delete_Tracks")) {
      if (fmUse) {
        fm.jButton14_actionPerformed(e);
      }
    }
    else if (e.getActionCommand().equals("Fresh_Tracks")) {
      if (fmUse) {
        fm.memoryShow();
      }
      this.expandTree(true);
    }
    else if (e.getActionCommand().equals("CutAndLink")) {
      CLFrame clf = new CLFrame(this.thisNode);
      clf.setFm(this.fm);
      clf.setFo(this.fo);
      if (this.fm != null) {
        this.fm.setCLFrame(clf);
      }
    }
    else if (e.getActionCommand().equals("Create_Excel")) {
      if (fmUse) {
        fm.jButton17_actionPerformed(e);
      }
    }
    else if (e.getActionCommand().substring(0, 11).equals("Show_Tracks")) {
      int pos = Integer.parseInt(e.getActionCommand().substring(11,
          e.getActionCommand().length()));
      if (fmUse) {
        fm.jTabbedPane1.setSelectedIndex(0);
        fm.setTrack(pos);
      }
    }
    else if (e.getActionCommand().substring(0, 13).equals("Show_Waypoint")) {
      int pos = Integer.parseInt(e.getActionCommand().substring(13,
          e.getActionCommand().length()));
      if (fmUse) {
        fm.jTabbedPane1.setSelectedIndex(1);
        fm.setIsInitTrue();
        fm.setWaypoint(pos);
      }
    }
    else if (e.getActionCommand().substring(0, 18).equals("Waypoint_To_Tracks")) {
      int pos = Integer.parseInt(e.getActionCommand().substring(18,
          e.getActionCommand().length()));
      ItemValue.setWaypointTracksID(thisNode,
                                    ItemValue.getTracksID(ItemValue.
          getTracks(pos)));
    }
    else if (e.getActionCommand().substring(0,
                                            23).equals(
                                                "Tracks_Include_Waypoint")) {
      int pos = Integer.parseInt(e.getActionCommand().substring(23,
          e.getActionCommand().length()));
      ItemValue.setWaypointTracksID(ItemValue.getWaypoint(pos),
                                    ItemValue.getTracksID(thisNode));
      //System.out.println(thisNode);
    }

    //Waypoint_To_Tracks Tracks_Include_Waypoint
    //System.out.println("This is :");
  }

  class MyTreeModelListener
      extends java.awt.event.MouseAdapter implements TreeModelListener {
    //JPopupMenu popup =super;
    DynamicTree dynamicTree = null;
    public MyTreeModelListener(DynamicTree dynamicTree) {
      this.dynamicTree = dynamicTree;
    }

    public void treeNodesChanged(TreeModelEvent e) {
      DefaultMutableTreeNode node;
      node = (DefaultMutableTreeNode)
          (e.getTreePath().getLastPathComponent());

      /*
       * If the event lists children, then the changed
       * node is the child of the node we've already
       * gotten.  Otherwise, the changed node and the
       * specified node are the same.
       */
      try {
        int index = e.getChildIndices()[0];
        node = (DefaultMutableTreeNode)
            (node.getChildAt(index));
      }
      catch (NullPointerException exc) {}

      System.out.println("The user has finished editing the node.");
      System.out.println("New value: " + node.getUserObject());
    }

    public void treeNodesInserted(TreeModelEvent e) {
    }

    public void treeNodesRemoved(TreeModelEvent e) {
    }

    public void treeStructureChanged(TreeModelEvent e) {
    }

    public void mouseClicked(MouseEvent e) {
      /*
             //System.out.println("X:"+e.getX()+",Y:"+e.getY());
             int selRow = tree.getRowForLocation(e.getX(), e.getY());
             //TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
             //System.out.println("selRow:"+selRow);
             if(!(tree.isExpanded(1))){
        selRow=selRow+ItemValue.tracksNum;
             }
             if(ifTracks(selRow)){
        fm.jTabbedPane1.setSelectedIndex(0);
        fm.setTrack(setPos(selRow));
             }else{
        fm.jTabbedPane1.setSelectedIndex(1);
        fm.setWaypoint(setPos(selRow));
             }
       */
    }

    public int setPos(int row) {
      if (row <= 1) {
        return 0;
      }
      if (row < (ItemValue.tracksNum + 2)) {
        return row - 2;
      }
      if (row == (ItemValue.tracksNum + 2)) {
        return 0;
      }
      if (row > (ItemValue.tracksNum + 2)) {
        return (row - (ItemValue.tracksNum + 3));
      }
      return 1;
    }

    public boolean ifTracks(int row) {
      // System.out.println("ItemValue.tracksNum+1:"+(ItemValue.tracksNum+1));
      if (row <= (ItemValue.tracksNum + 1)) {
        return true;
      }
      else {
        return false;
      }
    }

    public void mousePressed(MouseEvent e) {
      //maybeShowPopup(e);
    }

    public void mouseReleased(MouseEvent e) {
      maybeShowPopup(e);
    }

    private void maybeShowPopup(MouseEvent e) {
      /////////////////////////////////////////////
      int selRow = tree.getRowForLocation(e.getX(), e.getY());
      int tracksWaypointPos = selRow;
      TreePath selPath = tree.getPathForLocation(e.getX(), e.getY());
      if (! (tree.isExpanded(1))) {
        tracksWaypointPos = tracksWaypointPos + ItemValue.tracksNum;
      }
      if (ifTracks(tracksWaypointPos)) {
        if (dynamicTree.fmUse) {
          fm.jTabbedPane1.setSelectedIndex(0);
          fm.setTrack(setPos(tracksWaypointPos));
        }
      }
      else {
        if (dynamicTree.fmUse) {
          fm.jTabbedPane1.setSelectedIndex(1);
          fm.setIsInitTrue();
          fm.setWaypoint(setPos(tracksWaypointPos));
        }
      }
      //row = selRow;
      //System.out.println(selRow);
      ///////////////////////////////////////
      tree.setSelectionRow(selRow);

      ///////////////////////////////////////
      if ( ( ( (e.isPopupTrigger()) && (selRow >= (ItemValue.tracksNum + 3))) &&
            (tree.isExpanded(1))) ||
          ( ( (e.isPopupTrigger()) && (selRow >= 3)) && (! (tree.isExpanded(1))))) {
        dynamicTree.thisNode = ItemValue.getWaypoint(setPos(tracksWaypointPos));
        //System.out.println(thisNode);
        jMenuItem3.setText("删除航点" +
                           ItemValue.getWaypointName(setPos(tracksWaypointPos))+"(D)");
        addTracksToJMenu3(setPos(tracksWaypointPos));
        //jMenuItem4.setText("刷新  ID:"+ItemValue.getWaypointTracksID(setPos(tracksWaypointPos)));
        jPopupMenu1.show(e.getComponent(),
                         e.getX(), e.getY());

      }
      else if ( (e.isPopupTrigger()) && (selRow >= 2) &&
               (ItemValue.tracksNum > 0) && (tree.isExpanded(1))) {
        //this.
        //dynamicTree.thisNode =null;
        //dynamicTree.track =
        dynamicTree.thisNode = ItemValue.getTracksByPos(setPos(
            tracksWaypointPos));
        System.out.println(ItemValue.getTracksName(setPos(tracksWaypointPos)));
        jMenuItem5.setText("删除航迹" +
                           ItemValue.getTracksName(setPos(tracksWaypointPos))+"(D)");
        addTracksToJMenu4(setPos(tracksWaypointPos));
        //jMenuItem6.setText("刷新  ID:"+ItemValue.getTracksID(setPos(tracksWaypointPos)));
        jPopupMenu2.show(e.getComponent(),
                         e.getX(), e.getY());
        if (dynamicTree.foUse) {
          jMenuItem6.setText(" 刷 新 " +
                             ItemValue.getTracksPoint(ItemValue.
              getTracksByPos(setPos(tracksWaypointPos))).getLength());
        }
      }
    }
  }
}

class treeKeyAdapter
    extends java.awt.event.KeyAdapter {
  DynamicTree adaptee;
  private int alt = -1;
  treeKeyAdapter(DynamicTree adaptee) {
    this.adaptee = adaptee;
  }

  public void keyPressed(KeyEvent e) {
//    System.out.println("keyPress:" + e.getKeyChar());
    if (e.getModifiers() == 8) {
      alt = 8;
    }
    else {
      adaptee.getRow(e, alt);
    }

  }

  public void keyReleased(KeyEvent e) {
    if (e.getKeyCode() == KeyEvent.VK_ALT) {
      alt = -1;
    }
  }

}

class PopupMenu_jMenuItem_actionAdapter
    implements java.awt.event.ActionListener {
  DynamicTree adaptee;

  PopupMenu_jMenuItem_actionAdapter(DynamicTree adaptee) {
    this.adaptee = adaptee;
  }

  public void actionPerformed(ActionEvent e) {
    adaptee.jMenuItem_actionPerformed(e);
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -