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

📄 opacetatelayer.java

📁 JAVA+MO(for JAVA)开发的基于遗传算法的最短路径源代码
💻 JAVA
字号:
package BestRoadGA;
import com.esri.mo2.data.feat.Feature;
import com.esri.mo2.data.feat.SelectionSet;
import com.esri.mo2.map.draw.*;
import com.esri.mo2.ui.bean.*;
import com.esri.mo2.ui.bean.AcetateLayer;
import com.esri.mo2.ui.bean.Map;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class OPAcetateLayer extends AcetateLayer
 {
    private Map map;
    private SelectionSet selectedSet;
    private BaseSymbol baseSymbol;
    private SimpleLineSymbol sls = new SimpleLineSymbol();

    private static Timer timer;
    private FlashFeature flashFeature;
    private static int timerFlag;
    private static boolean displayFeature = false;

    public OPAcetateLayer(Map map)
    {
        this.map = map;
        flashFeature = new FlashFeature(this);
        timer = new Timer(200, flashFeature);
    }

    public void setLineSymbol(SimpleLineSymbol sls)
    {
        this.sls = sls;
    }

    public void setSelectedSet(SelectionSet selectedSet)
    {
        this.selectedSet = selectedSet;
    }

    public SelectionSet getSelectedSet()
    {
        return selectedSet;
    }

    public void setDisplySymbol(BaseSymbol baseSymbol)
    {
        this.baseSymbol = baseSymbol;
    }

    public BaseSymbol getDisplaySymbol()
    {
        return baseSymbol;
    }

    public void startFlash()
    {
        if (!timer.isRunning()) timer.start();
    }

    public void stopFlash()
    {
        if (timer.isRunning()) timer.stop();
    }

    public void paintComponent(Graphics g)
    {
        Feature feature;
        java.util.Iterator iterator;

        try
        {
            Graphics2D g2d = (Graphics2D) g;
            g2d.setTransform(map.getWorldToPixelTransform().toAffine());
            g2d.setClip(map.getExtent());

            if (selectedSet == null) return;

            iterator = selectedSet.iterator();
            while (iterator.hasNext())
            {
                feature = (Feature) iterator.next();
                if (!displayFeature)
                {
                    sls.setLineColor(Color.blue);
                    sls.setStroke(new BasicStroke(2));
                    setDisplySymbol(sls);
                }
                else
                    setDisplySymbol(null);

                baseSymbol.draw(feature.getGeometry(), g2d, "");
            }
        }
        catch (Exception e){}
    }

    class FlashFeature implements ActionListener
    {
        private OPAcetateLayer opaLayer;

        public FlashFeature(OPAcetateLayer opaLayer)
        {
            this.opaLayer = opaLayer;
        }

        public void actionPerformed(ActionEvent ae)
        {
            if (timerFlag < 4)
            {
                if (timerFlag % 2 == 0)
                    displayFeature = false;
                else
                    displayFeature = true;
                timerFlag++;
            }
            else
            {
                displayFeature = false;
                timerFlag++;
                if (timerFlag >= 10)
                    timerFlag = 0;
            }
            opaLayer.repaint();
        }
    }
}

⌨️ 快捷键说明

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