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

📄 environment.java

📁 用JAVA做的一个NSG仿真程序,可以在一个工作空间里面画一个虚拟的网络环境,然后根据环境生成TCL代码
💻 JAVA
字号:
// FrontEnd Plus GUI for JAD
// DeCompiled : Environment.class
package Generator;

import java.awt.*;
import java.util.Iterator;
import java.util.Vector;
import javax.swing.JComponent;
import System.Tools;

// Referenced classes of package ns2.Generator:
//            Node, Link

public class Environment extends JComponent
{

    static final long serialVersionUID = 0L;
    private Vector nodes;
    private Vector links;
    private boolean showIR;
    private boolean showGrid;
    private boolean showSR;
    private boolean showCoor;
    private boolean showNodeID;
    private boolean showLink;
    private boolean showLinkDetail;
    private boolean showConnected;
    int SR;
    int IR;
    int shiftX;
    int shiftY;
    Node src;
    Node dst;
    float scale;

    public Environment()
    {
        nodes = new Vector();
        links = new Vector();
        showIR = false;
        showGrid = true;
        showSR = true;
        showCoor = true;
        showNodeID = true;
        showLink = true;
        showLinkDetail = true;
        showConnected = true;
        SR = 250;
        IR = 550;
        shiftX = 0;
        shiftY = 0;
        src = null;
        dst = null;
        scale = 1.0F;
    }

    public void paintComponent(Graphics g)
    {
        Graphics2D graphics2d = (Graphics2D)g;
        graphics2d.setColor(Color.WHITE);
        graphics2d.fillRect(0, 0, 10000, 10000);
        graphics2d.translate(-shiftX, shiftY);
        graphics2d.setColor(Color.BLACK);
        drawGrid(graphics2d);
        drawNodes(graphics2d);
        if(showLink)
            drawLinks(graphics2d);
        drawSrc(graphics2d);
        if(showConnected)
            drawConnected(graphics2d);
    }

    private void drawGrid(Graphics2D graphics2d)
    {
        if(!showGrid)
            return;
        int i = getHeight();
        for(int j = 200; j < 16000; j += 200)
        {
            if(j % 1000 == 0)
                graphics2d.setColor(Color.GRAY);
            else
                graphics2d.setColor(Color.LIGHT_GRAY);
            graphics2d.drawLine(-16000, (int)((float)i - (float)j * scale), 16000, (int)((float)i - (float)j * scale));
        }

        for(int k = 200; k < 16000; k += 200)
        {
            if(k % 1000 == 0)
                graphics2d.setColor(Color.GRAY);
            else
                graphics2d.setColor(Color.LIGHT_GRAY);
            graphics2d.drawLine((int)((float)k * scale), -16000, (int)((float)k * scale), 16000);
        }

    }

    private void drawConnected(Graphics2D graphics2d)
    {
        int i1 = getHeight();
        graphics2d.setColor(Color.CYAN);
        for(Iterator iterator = nodes.iterator(); iterator.hasNext();)
        {
            Node node = (Node)(Node)iterator.next();
            for(Iterator iterator1 = nodes.iterator(); iterator1.hasNext();)
            {
                Node node1 = (Node)(Node)iterator1.next();
                if(node.getId() != node1.getId() && Tools.distance(node, node1) < 250D)
                {
                    int i = (int)((float)node.getX() * scale);
                    int j = (int)((float)i1 - (float)node.getY() * scale);
                    int k = (int)((float)node1.getX() * scale);
                    int l = (int)((float)i1 - (float)node1.getY() * scale);
                    java.awt.geom.Line2D.Double double1 = new java.awt.geom.Line2D.Double(i, j, k, l);
                    graphics2d.draw(double1);
                }
            }

        }

    }

    private void drawSrc(Graphics2D graphics2d)
    {
        if(src != null)
        {
            int i = getHeight();
            int j = 5;
            graphics2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            graphics2d.setStroke(new BasicStroke(1.0F, 1, 2));
            graphics2d.setColor(Color.RED);
            java.awt.geom.Ellipse2D.Double double1 = new java.awt.geom.Ellipse2D.Double((float)src.getX() * scale - (float)j, (float)i - (float)src.getY() * scale - (float)j, j * 2, j * 2);
            graphics2d.draw(double1);
        }
    }

    private void drawLinks(Graphics2D graphics2d)
    {
        int i = getHeight();
        for(Iterator iterator = links.iterator(); iterator.hasNext();)
        {
            Link link = (Link)(Link)iterator.next();
            int j = (int)((float)link.getSrc().getX() * scale);
            int k = (int)((float)i - (float)link.getSrc().getY() * scale);
            int l = (int)((float)link.getDst().getX() * scale);
            int i1 = (int)((float)i - (float)link.getDst().getY() * scale);
            graphics2d.setStroke(new BasicStroke(1.0F, 1, 2, 0.0F, new float[] {
                5F, 3F
            }, 0.0F));
            switch(link.getType())
            {
            case 0: // '\0'
                graphics2d.setColor(Color.RED);
                if(showLinkDetail)
                    graphics2d.drawString((new StringBuilder("ftp(")).append(link.getSrc().getId()).append("->").append(link.getDst().getId()).append(")").toString(), (j + l) / 2, (k + i1) / 2);
                java.awt.geom.Line2D.Double double1 = new java.awt.geom.Line2D.Double(j, k, l, i1);
                graphics2d.draw(double1);
                break;

            case 2: // '\002'
                graphics2d.setColor(Color.GREEN);
                if(showLinkDetail)
                    graphics2d.drawString((new StringBuilder("cbr(")).append(link.getSrc().getId()).append("->").append(link.getDst().getId()).append(")").toString(), (j + l) / 2, (k + i1) / 2);
                java.awt.geom.Line2D.Double double2 = new java.awt.geom.Line2D.Double(j, k, l, i1);
                graphics2d.draw(double2);
                break;

            case 1: // '\001'
                graphics2d.setColor(Color.DARK_GRAY);
                if(showLinkDetail)
                    graphics2d.drawString((new StringBuilder("ping(")).append(link.getSrc().getId()).append("->").append(link.getDst().getId()).append(")").toString(), (j + l) / 2, (k + i1) / 2);
                java.awt.geom.Line2D.Double double3 = new java.awt.geom.Line2D.Double(j, k, l, i1);
                graphics2d.draw(double3);
                break;
            }
            if(showLinkDetail)
                graphics2d.drawString((new StringBuilder("[")).append(link.getStart()).append("s~").append(link.getStop()).append("s]").toString(), (j + l) / 2, (k + i1) / 2 + 13);
        }

    }

    private void drawNodes(Graphics2D graphics2d)
    {
        int i = getHeight();
        int j = 5;
        for(Iterator iterator = nodes.iterator(); iterator.hasNext();)
        {
            Node node = (Node)(Node)iterator.next();
            int k = (int)((float)node.getX() * scale);
            int l = (int)((float)i - (float)node.getY() * scale);
            graphics2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            graphics2d.setStroke(new BasicStroke(1.0F, 1, 2));
            graphics2d.setColor(Color.BLUE);
            java.awt.geom.Ellipse2D.Double double1 = new java.awt.geom.Ellipse2D.Double(k - j / 2, l - j / 2, j, j);
            graphics2d.draw(double1);
            if(showCoor)
                graphics2d.drawString((new StringBuilder("(")).append(node.getX()).append(", ").append(node.getY()).append(")").toString(), k - j - 20, (l - j) + 20);
            if(showNodeID)
                if(node.getId() < 10)
                    graphics2d.drawString((new StringBuilder()).append(node.getId()).toString(), (k - j) + 2, l - j);
                else
                if(node.getId() < 100)
                    graphics2d.drawString((new StringBuilder()).append(node.getId()).toString(), k - j - 2, l - j);
                else
                if(node.getId() < 1000)
                    graphics2d.drawString((new StringBuilder()).append(node.getId()).toString(), k - j - 6, l - j);
                else
                    graphics2d.drawString((new StringBuilder()).append(node.getId()).toString(), k - j - 10, l - j);
            if(showIR)
            {
                graphics2d.setStroke(new BasicStroke(1.0F, 1, 2, 0.0F, new float[] {
                    5F, 3F
                }, 0.0F));
                graphics2d.setColor(Color.PINK);
                java.awt.geom.Ellipse2D.Double double2 = new java.awt.geom.Ellipse2D.Double((float)k - (float)IR * scale, (float)l - (float)IR * scale, (float)(IR * 2) * scale, (float)(IR * 2) * scale);
                graphics2d.draw(double2);
            }
            if(showSR)
            {
                graphics2d.setStroke(new BasicStroke(1.0F, 1, 2, 0.0F, new float[] {
                    5F, 3F
                }, 0.0F));
                graphics2d.setColor(Color.LIGHT_GRAY);
                java.awt.geom.Ellipse2D.Double double3 = new java.awt.geom.Ellipse2D.Double((float)k - (float)SR * scale, (float)l - (float)SR * scale, (float)(SR * 2) * scale, (float)(SR * 2) * scale);
                graphics2d.draw(double3);
            }
        }

    }

    public void setNodes(Vector vector)
    {
        nodes = vector;
    }

    public void setLinks(Vector vector)
    {
        links = vector;
    }

    public void enableIR()
    {
        showIR = true;
        repaint();
    }

    public void disableIR()
    {
        showIR = false;
        repaint();
    }

    public void enableCoor()
    {
        showCoor = true;
        repaint();
    }

    public void disableCoor()
    {
        showCoor = false;
        repaint();
    }

    public void enableSR()
    {
        showSR = true;
        repaint();
    }

    public void disableSR()
    {
        showSR = false;
        repaint();
    }

    public void enableGrid()
    {
        showGrid = true;
        repaint();
    }

    public void disableGrid()
    {
        showGrid = false;
        repaint();
    }

    public void enableLink()
    {
        showLink = true;
        repaint();
    }

    public void disableLink()
    {
        showLink = false;
        repaint();
    }

    public void enableLinkDetail()
    {
        showLinkDetail = true;
        repaint();
    }

    public void disableLinkDetail()
    {
        showLinkDetail = false;
        repaint();
    }

    public void enableNodeID()
    {
        showNodeID = true;
        repaint();
    }

    public void disableNodeID()
    {
        showNodeID = false;
        repaint();
    }

    public void enableConnected()
    {
        showConnected = true;
        repaint();
    }

    public void disableConnected()
    {
        showConnected = false;
        repaint();
    }

    public void setSR(int i)
    {
        SR = i;
        repaint();
    }

    public void setIR(int i)
    {
        IR = i;
        repaint();
    }

    public void setScale(float f)
    {
        scale = f;
        repaint();
    }

    public void setSrc(Node node)
    {
        src = node;
        repaint();
    }

    public void clearSrc()
    {
        src = null;
        repaint();
    }

    public void setDst(Node node)
    {
        dst = node;
        repaint();
    }

    public void clearDst()
    {
        dst = null;
        repaint();
    }

    public void setShiftX(int i)
    {
        shiftX = i;
        repaint();
    }

    public void setShiftY(int i)
    {
        shiftY = i;
        repaint();
    }

    public Vector getLinks()
    {
        return links;
    }

    public Vector getNodes()
    {
        return nodes;
    }
}

⌨️ 快捷键说明

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