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

📄 bestroadjframe.java

📁 JAVA+MO(for JAVA)开发的基于遗传算法的最短路径源代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                        if (distance1 < distance2)
                        {
                            endPointID = Integer.parseInt(sfFeature.getValue(1).toString()); //获取字段FNODE_的值
                        }
                        else
                        {
                            endPointID = Integer.parseInt(sfFeature.getValue(2).toString()); //获取字段FNODE_的值
                        }
                        jTextArea2.setText(sfFeature.getValue(5).toString()); //设置起点为:线段的FNODE_值
                        jTextArea2.setEditable(false);
                        completeEpSetTag = true;
                    }
                    else
                    {
                        JLabel lblMessage = new JLabel("获取的Polyline为空!");
                        lblMessage.setFont(new Font("宋体", Font.BOLD, 16));
                        JOptionPane.showMessageDialog(null, lblMessage,"提示:", JOptionPane.DEFAULT_OPTION);
                        completeEpSetTag = false;
                        jTextArea2.setText("");
                    }
                }

                    else if(curnum>1)
                    {
                        JLabel lblMessage = new JLabel("选中了多条线,请重新选取!");
                        lblMessage.setFont(new Font("宋体",Font.BOLD,16));
                        JOptionPane.showMessageDialog(null,lblMessage,"提示:",JOptionPane.DEFAULT_OPTION);
                        completeEpSetTag = false;
                        jTextArea2.setText("");
                    }
                }
            }
        }
        public void mouseEntered(MouseEvent e){

        }
        public void mouseExited(MouseEvent e){

        }
    }


    /**
     * Component initialization.
     *
     * @throws java.lang.Exception
     */
    private void jbInit() throws Exception {
        contentPane = (JPanel) getContentPane();
        contentPane.setLayout(borderLayout1);
        setTitle("GIS最短路径分析");
        setSize(redirectPage());

        momenu1.setText("缩放功能");
        momenuitem14.setText("全景");
        momenuitem11.setText("放大");
        momenuitem12.setText("缩小");
        momenuitem13.setText("漫游");
        momenu1.setVisible(true);
        layer1.setBounds(new Rectangle(82, 72, 61, 75));
        jSplitPane6.setOrientation(JSplitPane.VERTICAL_SPLIT);
        jSplitPane6.setMinimumSize(new Dimension(160, 160));
        jSplitPane6.setResizeWeight(0.0);

//        jSplitPane4.setMinimumSize(new Dimension(160, 160));
        jSplitPane2.setMinimumSize(new Dimension(200, 200));
        jSplitPane2.setPreferredSize(new Dimension(200, 200));
        jSplitPane2.setResizeWeight(0.0);

        jSplitPane1.setMinimumSize(new Dimension(135, 135));
        jSplitPane1.setPreferredSize(new Dimension(135, 135));
        jSplitPane1.setLastDividerLocation(100);
        jSplitPane5.setMinimumSize(new Dimension(380, 380));
        jSplitPane5.setResizeWeight(0.0);
        overviewMap1.setBackground(new Color(210, 255, 255));
        overviewMap1.setBorder(null);
        overviewMap1.setDebugGraphicsOptions(DebugGraphics.LOG_OPTION);
        overviewMap1.setMinimumSize(new Dimension(160, 160));
        overviewMap1.setPreferredSize(new Dimension(175, 160));
        overviewMap1.setToolTipText("");
        overviewMap1.setZoomFactor(0.5);
        overviewMap1.setMap(map1);
        treeToc1.setMaximumSize(new Dimension(75, 100));
        treeToc1.setMinimumSize(new Dimension(50, 100));
        treeToc1.setPreferredSize(new Dimension(75, 100));
        zoomPanToolBar1.setOrientation(JToolBar.VERTICAL);
        jSplitPane3.setMinimumSize(new Dimension(100, 100));
        jSplitPane3.setPreferredSize(new Dimension(100, 100));
        jSplitPane0.setMinimumSize(new Dimension(135, 135));
        jSplitPane0.setPreferredSize(new Dimension(800, 600));
        contentPane.setPreferredSize(new Dimension(800, 800));
        jPanel1.setMinimumSize(new Dimension(96, 96));
        jPanel1.setPreferredSize(new Dimension(100, 80));
        jLabel1.setFont(new java.awt.Font("Dialog", Font.BOLD, 18));
        jLabel1.setPreferredSize(new Dimension(50, 26));
        jLabel1.setText("最优路径分析");
        jLabel2.setFont(new java.awt.Font("Dialog", Font.BOLD, 16));
        jLabel2.setText("第一步");
        jLabel3.setFont(new java.awt.Font("Dialog", Font.PLAIN, 13));
        jLabel3.setText("创建网络拓扑");
        jButton1.setFont(new java.awt.Font("Dialog", Font.PLAIN, 12));
        jButton1.setText("开始创建");
        jLabel4.setFont(new java.awt.Font("Dialog", Font.BOLD, 16));
        jLabel4.setText("第二步");
        jLabel5.setFont(new java.awt.Font("Dialog", Font.PLAIN, 13));
        jLabel5.setText("设置起点和终点");
        jLabel6.setFont(new java.awt.Font("Dialog", Font.PLAIN, 12));
        jLabel6.setText("起点:");
        jTextArea1.setBackground(Color.yellow);
        jLabel7.setFont(new java.awt.Font("Dialog", Font.PLAIN, 12));
        jLabel7.setText("终点:");
        jButton3.setFont(new java.awt.Font("Dialog", Font.PLAIN, 12));
        jTextArea2.setBackground(Color.yellow);
        jButton3.setText("提交确认");
        jLabel8.setFont(new java.awt.Font("Dialog", Font.BOLD, 16));
        jLabel8.setText("第三步");
        jLabel9.setFont(new java.awt.Font("Dialog", Font.PLAIN, 13));
        jLabel9.setText("求解最优路径并显示");

        jPanel2.setMinimumSize(new Dimension(170, 170));
        jPanel2.setPreferredSize(new Dimension(190, 170));
        jPanel3.setMinimumSize(new Dimension(180, 180));
        jPanel3.setPreferredSize(new Dimension(197, 180));
        jButton2.setFont(new java.awt.Font("Dialog", Font.PLAIN, 12));
        jButton2.setToolTipText("");
        jButton2.setText("开始设置");
        jButton4.setFont(new java.awt.Font("Dialog", Font.PLAIN, 12));
        jButton4.setText("计算路径");
        jButton5.setFont(new java.awt.Font("Dialog", Font.PLAIN, 12));
        jButton5.setText("显示结果");

        //jButton1.addActionListener(new BestRoadJFrame_jButton1_actionAdapter(this));
        jButton1.addActionListener(this);
        jButton2.addActionListener(this);
        jButton3.addActionListener(this);
        jButton4.addActionListener(this);
        jButton5.addActionListener(this);

        momenu1.add(momenuitem11);
        momenu1.add(momenuitem12);
        momenu1.add(momenuitem13);
        momenu1.add(momenuitem14);
        momenubar1.add(momenu1);
        momenu2.setText("空间分析模块");
        momenuitem21.setText("最优路径分析");//最优路径分析
        momenuitem22.setText("追踪分析");//追踪分析
        momenuitem21.addActionListener(this);
        momenuitem22.addActionListener(this);
        momenu2.add(momenuitem21);
        momenu2.add(momenuitem22);
        momenubar1.add(momenu2);
        momenu2.setVisible(true);
        initAction();
        layer1.setDataset("com.esri.mo2.src.file.FileSystemConnection!E:/上海道路/roadc_cur.shp!");

        map1.add(layer1);
        map1.addMouseListener(new DrawMouseListener());
        treeToc1.setMap(map1);

        zoomPanToolBar1.setMap(map1);
        jSplitPane3.setOrientation(JSplitPane.VERTICAL_SPLIT);
        jSplitPane3.setLastDividerLocation(120);
        zoomPanToolBar1.setBackground(Color.white);
//        jSplitPane4.setOrientation(JSplitPane.VERTICAL_SPLIT);
//        jSplitPane4.setPreferredSize(new Dimension(160, 160));
//        jSplitPane4.setLastDividerLocation(160);
        jSplitPane5.setOrientation(JSplitPane.VERTICAL_SPLIT);
        jSplitPane5.setPreferredSize(new Dimension(380, 380));
        jSplitPane5.setLastDividerLocation(380);
        jPanel1.setLayout(xYLayout1);
        jPanel2.setLayout(xYLayout2);
        jPanel3.setLayout(xYLayout3);
        jPanel4.setLayout(xYLayout4);
        jSplitPane6.setPreferredSize(new Dimension(170, 160));
        jSplitPane6.setLastDividerLocation(160);
        jSplitPane2.setLastDividerLocation(200);
        contentPane.add(jSplitPane0,java.awt.BorderLayout.CENTER);
        jSplitPane3.add(jPanel1, JSplitPane.TOP);
        jPanel1.add(jLabel1, new XYConstraints(46, 54, 120, 33));
        jSplitPane3.add(jSplitPane5, JSplitPane.BOTTOM);
        jSplitPane2.add(map1, JSplitPane.RIGHT);
        jSplitPane2.add(jSplitPane3, JSplitPane.LEFT);
        jSplitPane1.add(treeToc1, JSplitPane.LEFT);
        jSplitPane1.add(zoomPanToolBar1, JSplitPane.RIGHT);
//        jSplitPane4.add(overviewMap1, JSplitPane.TOP);
        jSplitPane5.add(jSplitPane6, JSplitPane.TOP);
        jSplitPane6.add(jPanel3, JSplitPane.BOTTOM);
//        jSplitPane4.add(, JSplitPane.BOTTOM);
        jSplitPane5.add(jPanel4, JSplitPane.BOTTOM);
        jPanel4.add(jLabel8, new XYConstraints(78, 8, 52, 31));
        jSplitPane6.add(jPanel2, JSplitPane.LEFT);
        jPanel2.add(jLabel2, new XYConstraints(75, 8, 51, 28));
        jSplitPane0.add(jSplitPane1, JSplitPane.LEFT);
        jSplitPane0.add(jSplitPane2, JSplitPane.RIGHT);
        jPanel2.add(jLabel3, new XYConstraints(64, 37, 84, 33));
        jPanel3.add(jTextArea2, new XYConstraints(59, 122, 89, 20));
        jPanel3.add(jButton3, new XYConstraints(61, 156, 88, 24));
        jPanel3.add(jTextArea1, new XYConstraints(58, 86, 89, 19));
        jPanel3.add(jLabel6, new XYConstraints(12, 83, 44, 27));
        jPanel3.add(jLabel7, new XYConstraints(12, 120, 40, 27));
        jPanel3.add(jLabel4, new XYConstraints(76, 1, 63, 35));
        jPanel3.add(jLabel5, new XYConstraints(56, 26, 96, 35));
        jPanel3.add(jButton2, new XYConstraints(58, 55, 88, 27));
        jPanel4.add(jLabel9, new XYConstraints(45, 36, 123, 32));
        jPanel2.add(jButton1, new XYConstraints(57, 73, 87, 23));
        jPanel2.add(jProgressBar1, new XYConstraints(24, 115, 157, 17));
        jPanel4.add(jButton4, new XYConstraints(64, 64, 87, 23));
        jPanel4.add(jButton5, new XYConstraints(64, 93, 87, 24));
        jSplitPane2.setDividerLocation(200);
        jSplitPane5.setDividerLocation(380);
        jSplitPane6.setDividerLocation(160);
    }
    private Dimension redirectPage()
    {
        Toolkit kit = Toolkit.getDefaultToolkit();
        Dimension screenSize = kit.getScreenSize();
        int screenHeight = screenSize.height;
        int screenWidth = screenSize.width;
        if ((screenHeight == 600) && (screenWidth == 800)) {
            screenX = 800;
            screenY = 600;
        }
        else if ((screenHeight == 768) && (screenWidth == 1024))
        {
            screenX = 1024;
            screenY = 768;
        }
        else
        {
            screenX = 800;
            screenY = 600;
        }
        Dimension screensize = new Dimension(screenX,screenY);
        return screensize;
    }

/*    public void paint(Graphics g)
    {
        momenubar.repaint();
        map1.redraw();

⌨️ 快捷键说明

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