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

📄 nsg.java

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

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStreamWriter;
import java.util.Iterator;
import java.util.Vector;

import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JScrollPane;
import javax.swing.JSlider;
import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.KeyStroke;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.filechooser.FileFilter;

import Analyser.Analyser;
import System.Tools;

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

public class NSG extends JFrame
{

    static final long serialVersionUID = 0L;
    boolean dirty;
    JComboBox macBox;
    JComboBox routingBox;
    Environment env;
    JLabel position;
    JLabel node_no;
    JLabel ftp_no;
    JLabel cbr_no;
    JLabel ping_no;
    SmallView view;
    JTextArea tclArea;
    JTextArea analysisArea;
    JTextArea messageArea;
    JPanel configPane;
    JTextField tclFilePath;
    JTextField scnFilePath;
    JTextField traceFileName;
    JTextField namFileName;
    JTextField noNodes;
    Vector nodes;
    Vector links;
    int envWidth;
    int envHeight;
    Node src;
    Node dst;
    int sequence;
    File tclFile;
    File scnFile;
    JTextField simStopField;
    JSlider scale;
    JSlider shiftX;
    JSlider shiftY;
    JFileChooser tcljfc;
    JFileChooser scnjfc;
    JFileChooser trjfc;
    JPopupMenu nodePopup;
    Font systemFont;
    JTabbedPane linkPane;
    JTextField ftp_start;
    JTextField ftp_stop;
    JTextField ping_start;
    JTextField cbr_start;
    JTextField cbr_stop;
    JTextField cbr_frame_size;
    String rates[] = {
        "100Mb", "50Mb", "20Mb", "10Mb", "5Mb", "2Mb", "1Mb", "512Kb", "256Kb", "128Kb", 
        "64Kb", "32Kb", "16Kb", "8Kb", "4Kb", "2Kb", "1Kb"
    };
    JComboBox cbr_rate;
    JTabbedPane nodePane;
    JTextField grid_row;
    JTextField grid_column;
    JTextField grid_dist;
    JTextField v_chain_hops;
    JTextField v_chain_dist;
    JTextField h_chain_hops;
    JTextField h_chain_dist;
    JTextField random_width;
    JTextField random_height;
    JTextField random_number;
    JComboBox normal_source;
    JComboBox normal_dest;

    private void createNodePopup()
    {
        nodePopup = new JPopupMenu();
        JMenuItem jmenuitem = new JMenuItem("Delete");
        jmenuitem.addActionListener(new ActionListener() {

            final NSG this$0;

            public void actionPerformed(ActionEvent actionevent)
            {
                if(src == null)
                {
                    return;
                } else
                {
                    removeNode(src);
                    src = null;
                    return;
                }
            }

            
            {
                this$0 = NSG.this;
                //super();
            }
        });
        nodePopup.add(jmenuitem);
        jmenuitem = new JMenuItem("Move(unsupported)");
        nodePopup.add(jmenuitem);
    }

    public NSG()
    {
        super("NSG beta version <wupl@cse.nsysu.edu.tw>");
        dirty = false;
        macBox = new JComboBox(new String[] {
            "802_11"
        });
        routingBox = new JComboBox(new String[] {
            "DSDV", "DSR", "AODV", "TORA"
        });
        env = new Environment();
        position = new JLabel();
        node_no = new JLabel("0", 0);
        ftp_no = new JLabel("0", 0);
        cbr_no = new JLabel("0", 0);
        ping_no = new JLabel("0", 0);
        tclArea = new JTextArea();
        analysisArea = new JTextArea();
        messageArea = new JTextArea();
        configPane = new JPanel();
        tclFilePath = new JTextField();
        scnFilePath = new JTextField();
        traceFileName = new JTextField("test.tr");
        namFileName = new JTextField("test.nam");
        noNodes = new JTextField(5);
        nodes = new Vector();
        links = new Vector();
        src = null;
        dst = null;
        sequence = 0;
        simStopField = new JTextField("10.0");
        scale = new JSlider(0, 10, 500, 50);
        shiftX = new JSlider(0, 0, 9000, 0);
        shiftY = new JSlider(1, 0, 9000, 0);
        tcljfc = new JFileChooser();
        scnjfc = new JFileChooser();
        trjfc = new JFileChooser();
        systemFont = new Font("Verdana", 0, 10);
        ftp_start = new JTextField("1.0");
        ftp_stop = new JTextField("2.0");
        ping_start = new JTextField("1.0");
        cbr_start = new JTextField("1.0");
        cbr_stop = new JTextField("2.0");
        cbr_frame_size = new JTextField("1000");
        cbr_rate = new JComboBox(rates);
        grid_row = new JTextField("5");
        grid_column = new JTextField("5");
        grid_dist = new JTextField("200");
        v_chain_hops = new JTextField("5");
        v_chain_dist = new JTextField("200");
        h_chain_hops = new JTextField("5");
        h_chain_dist = new JTextField("200");
        random_width = new JTextField("1000");
        random_height = new JTextField("1000");
        random_number = new JTextField("10");
        normal_source = new JComboBox();
        normal_dest = new JComboBox();
        tcljfc.addChoosableFileFilter(new FileFilter() {

            final NSG this$0;

            public boolean accept(File file)
            {
                if(file.isDirectory())
                    return true;
                return file.getName().endsWith(".tcl");
            }

            public String getDescription()
            {
                return "TCL\u6A94 (*.tcl)";
            }

            
            {
                this$0 = NSG.this;
                //super();
            }
        });
        trjfc.addChoosableFileFilter(new FileFilter() {

            final NSG this$0;

            public boolean accept(File file)
            {
                if(file.isDirectory())
                    return true;
                return file.getName().endsWith(".tr");
            }

            public String getDescription()
            {
                return "Trace\u6A94 (*.tr)";
            }

            
            {
                this$0 = NSG.this;
                //super();
            }
        });
        scnjfc.addChoosableFileFilter(new FileFilter() {

            final NSG this$0;

            public boolean accept(File file)
            {
                if(file.isDirectory())
                    return true;
                if(file.getName().endsWith(".s"))
                    return true;
                return file.getName().endsWith(".scn");
            }

            public String getDescription()
            {
                return "\u5287\u672C\u6A94 *.scn";
            }

            
            {
                this$0 = NSG.this;
                //super();
            }
        });
        getContentPane().setLayout(new BorderLayout(5, 5));
        createMenuBar();
        createToolBar();
        createSetupPanel();
        createCentralPanel();
        createScalePanel();
        createNodePopup();
        init();
    }

    private void createScalePanel()
    {
        scale.addChangeListener(new ChangeListener() {

            final NSG this$0;

            public void stateChanged(ChangeEvent changeevent)
            {
                env.setScale((float)scale.getValue() / 100F);
                shiftX.setMaximum((int)(9000F * env.scale));
                shiftY.setMaximum((int)(9000F * env.scale));
            }

            
            {
                this$0 = NSG.this;
                //super();
            }
        });
        env.setScale((float)scale.getValue() / 100F);
        shiftX.setMaximum((int)(9000F * env.scale));
        shiftY.setMaximum((int)(9000F * env.scale));
        getContentPane().add(scale, "South");
    }

    private void analysis()
    {
        trjfc.setDialogTitle("\u8ACB\u9078\u64C7\u8981\u5206\u6790\u7684\u6A94\u6848");
        trjfc.setMultiSelectionEnabled(true);
        int i = trjfc.showOpenDialog(this);
        if(i == 0)
        {
            File afile[] = trjfc.getSelectedFiles();
            for(int j = 0; j < afile.length; j++)
            {
                analysisArea.append((new StringBuilder("=====")).append(afile[j].getAbsolutePath()).append(")=====\n").toString());
                Analyser.analysisFile(afile[j], analysisArea, messageArea);
            }

        }
    }

    private void createMenuBar()
    {
        JMenuBar jmenubar = new JMenuBar();
        setJMenuBar(jmenubar);
        JMenu jmenu = new JMenu("System");
        jmenu.setFont(systemFont);
        jmenu.setMnemonic(83);
        JMenuItem jmenuitem = new JMenuItem("New TCL", 78);
        jmenuitem.setFont(systemFont);
        jmenuitem.setAccelerator(KeyStroke.getKeyStroke(78, 2));
        jmenuitem.addActionListener(new ActionListener() {

            final NSG this$0;

            public void actionPerformed(ActionEvent actionevent)
            {
                init();
            }

            
            {
                this$0 = NSG.this;
                //super();

⌨️ 快捷键说明

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