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

📄 bestroadjframe.java

📁 JAVA+MO(for JAVA)开发的基于遗传算法的最短路径源代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        jSplitPane2.setDividerLocation((int)(this.getWidth()*0.75));
        jSplitPane4.setDividerLocation(200);
    }*/

    private void initAction()
    {
        setItem11Action();
        setItem12Action();
        setItem13Action();
        setItem14Action();
    }

    private void setItem11Action()
    {
        javax.swing.Action _panAction = zoomPanToolBar1.getActions().getAction(3);
        momenuitem11.setAction(_panAction);
        momenuitem11.setIcon(null);
        momenuitem11.setText("全景");
    }

    private void setItem12Action()
    {
        javax.swing.Action _panAction = zoomPanToolBar1.getActions().getAction(4);
        momenuitem12.setAction(_panAction);
        momenuitem12.setIcon(null);
        momenuitem12.setText("放大");
    }

    private void setItem13Action()
    {
        javax.swing.Action _panAction = zoomPanToolBar1.getActions().getAction(5);
        momenuitem13.setAction(_panAction);
        momenuitem13.setIcon(null);
        momenuitem13.setText("缩小");
    }

    private void setItem14Action()
    {
        javax.swing.Action _panAction = zoomPanToolBar1.getActions().getAction(6);
        momenuitem14.setAction(_panAction);
        momenuitem14.setIcon(null);
        momenuitem14.setText("漫游");
    }
    public void actionPerformed(ActionEvent e)
    {
        if(e.getSource()==momenuitem21)  //最优路径分析
        {
        }
        else if(e.getSource()==momenuitem22)   //追踪分析
        {
        }
        else if(e.getSource()==jButton1)    //“创建拓扑”按钮
        {
            if(topTag==0)
            {
                if(timer!=null)
                {
                    timer.stop();
                    timer=null;
                }
                jProgressBar1.setMinimum(0);
                jProgressBar1.setMaximum(10);
                jProgressBar1.setValue(0);
                try {
                    flayer1 = (com.esri.mo2.map.dpy.FeatureLayer) map1.getLayer(
                            "roadc_cur");
                    jProgressBar1.setValue(2);
                    createTop top1 = new createTop(map1, flayer1); //创建拓扑关系
                    jProgressBar1.setValue(6);
                    lNum = top1.getLineNum(); //获取线的条数
                    pNum = top1.getPointNum(); //获取点的个数
                    rLine = new LineBean[lNum]; //给线数组分配空间
                    for (int i = 0; i < lNum; i++) {
                        rLine[i] = new LineBean();
                    }
                    jProgressBar1.setValue(8);
                    rLine = top1.getLine(); //获取线集
                    pointID = new int[pNum]; //给点数组分配空间
                    pointID = top1.getPointID(); //获取点集
                    pointCoord=new com.esri.mo2.cs.geom.Point[pNum];
                    pointCoord=top1.getPointCoord();
                    //pointID_arrayList = top1.getPointIdList();
                    adjacencyTable=new boolean[pNum][lNum];
                    adjacencyTable=top1.getAdjacencyTable();

                    topTag=1;
                    jProgressBar1.setValue(10);
                } catch (Exception e1) {
                    e1.printStackTrace();
                }
                jProgressBar1.setValue(0);
                JLabel lblMessage = new JLabel("拓扑关系成功建立!");
                lblMessage.setFont(new Font("宋体",Font.BOLD,16));
                JOptionPane.showMessageDialog(null,lblMessage,"提示:",JOptionPane.DEFAULT_OPTION);
            }
            else
            {
                JLabel lblMessage = new JLabel("拓扑关系已经建立,无需重复建立!");
                lblMessage.setFont(new Font("宋体",Font.BOLD,16));
                JOptionPane.showMessageDialog(null,lblMessage,"提示:",JOptionPane.DEFAULT_OPTION);
            }
        }

        else if(e.getSource()== jButton2)   //“开始设置起点和终点”按钮
        {
            if(timer!=null)
            {
                timer.stop();
                timer=null;
            }
            if(topTag==1)
            {
                map1.setSelectedTool(null);
                flayer1.setSelectionSet(null);
                setBEPointTag = true;
                completeSpSetTag = false;
                completeEpSetTag = false;
                jTextArea1.setText("");
                jTextArea2.setText("");
                jTextArea1.setEditable(true);
                jTextArea2.setEditable(true);
                calBestroadTag = 0;
                displayBestroadTag=0;
            }
            else
            {
                JLabel lblMessage = new JLabel("请先建立拓扑关系,然后才能执行该操作!");
                lblMessage.setFont(new Font("宋体",Font.BOLD,16));
                JOptionPane.showMessageDialog(null,lblMessage,"提示:",JOptionPane.DEFAULT_OPTION);
            }
        }
        else if(e.getSource()== jButton3)    //“设置起点与终点提交”按钮
        {
            if(timer!=null)
            {
                timer.stop();
                timer=null;
            }
            String spText=jTextArea1.getText();
            String epText=jTextArea2.getText();
            spText=spText.substring(3);
            epText=epText.substring(3);
            if(spText.equals(epText))
            {
                jTextArea1.setEditable(true);
                jTextArea1.setText("");
                jTextArea2.setEditable(true);
                jTextArea2.setText("");
                completeSpSetTag=false;
                completeEpSetTag =false;
                JLabel lblMessage = new JLabel("起点与终点为同一个点!请重新设置!");
                lblMessage.setFont(new Font("宋体", Font.BOLD, 16));
                JOptionPane.showMessageDialog(null, lblMessage, "提示:",JOptionPane.DEFAULT_OPTION);
            }
            else
            {
                map1.setSelectedTool(null);
                if(completeSpSetTag==true && completeEpSetTag == true){
                    JLabel lblMessage = new JLabel("提交成功!");
                    lblMessage.setFont(new Font("宋体", Font.BOLD, 16));
                    JOptionPane.showMessageDialog(null, lblMessage, "提示:",JOptionPane.DEFAULT_OPTION);

                    setBEPointTag = false;
                    completeSpSetTag = true;
                    completeEpSetTag = true;
                    StartPAndEndPTag=1;
                    jTextArea1.setEditable(false);
                    jTextArea2.setEditable(false);
                }
                else{
                    JLabel lblMessage = new JLabel("起点和终点设置不成功,请设置完整!");
                    lblMessage.setFont(new Font("宋体", Font.BOLD, 16));
                    JOptionPane.showMessageDialog(null, lblMessage, "提示:",JOptionPane.DEFAULT_OPTION);
                    //setBEPointTag = true;
                    StartPAndEndPTag=0;
                }
            }
        }

        else if(e.getSource()== jButton4)   //“计算路径”按钮
        {
            if(StartPAndEndPTag==1)
            {
                if(timer!=null)
                {
                    timer.stop();
                    timer=null;
                }
                flayer1.setSelectionSet(null);
                shortCut shortcut = new shortCut();
                shortcut.setLine(rLine);
                shortcut.setPointID(pointID);
                //shortcut.setOriginPointIDArrayList(pointID_arrayList);
                shortcut.setStartAndEndPointID(startPointID, endPointID);
                shortcut.setAdjacencyTable(adjacencyTable);
                shortcut.setPointCoord(pointCoord);
                //int roadNum=shortcut.getBestRoadLineNum();
                //bestroadLine=new int[roadNum];
                bestroadLine = shortcut.getBestRoad();
                calBestroadTag = 1;
            }
            else
            {
                JLabel lblMessage = new JLabel("请先完成以上的几步操作后,再执行该操作!");
                lblMessage.setFont(new Font("宋体", Font.BOLD, 16));
                JOptionPane.showMessageDialog(null, lblMessage, "提示:",JOptionPane.DEFAULT_OPTION);
                calBestroadTag = 0;
            }
        }
        else if(e.getSource()== jButton5)    //“成果显示”按钮
        {
            if(calBestroadTag==1)
            {
                if(timer!=null)
                {
                    timer.stop();
                    timer=null;
                }
                IDtoSelection toSelection = new IDtoSelection();
                SelectionSet selectionset = toSelection.convertSelectionSet(flayer1, rLine, bestroadLine);
                flayer1.setSelectionSet(selectionset);
                //flashPath=new FlashPath(flayer1,selectionset);
                //timer = new Timer(200, flashPath);
                //timer.start();
                flayer1.setSelectionColor(Color.red);
                displayBestroadTag=1;
            }
            else
            {
                JLabel lblMessage = new JLabel("请先完成以上的几步操作后,再执行该操作!");
                lblMessage.setFont(new Font("宋体", Font.BOLD, 16));
                JOptionPane.showMessageDialog(null, lblMessage, "提示:",JOptionPane.DEFAULT_OPTION);
                displayBestroadTag=0;
            }
        }
    }
}

⌨️ 快捷键说明

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