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

📄 demomanger.java

📁 java B++树 一个很好的算法来实现这些问题 推荐!
💻 JAVA
字号:
package cq_result_trans.application;

import java.util.*;
import mddb.client.*;
import mddb.packets.*;
import java.io.*;
import javax.swing.border.*;
import java.awt.BorderLayout;
import javax.swing.*;
import java.awt.Point;
import java.net.SocketException;

//用于进行演示的全权控制

public class DemoManger {
    //------------------------------------------------------
    AppFrame frame;
    //保存节点ID和位置属性
    Properties ID_Position;
    Properties Range_Time;
    File pptFile,rtFile;
    boolean randomPosition;//用于标示是否让节点的初始位置为随机值
    //------------------------------------------------------
    ClientNode[] nodePool;    //用于存放生成的节点,便于统一管理
                              //特殊节点Car在第0位,用来代表移动的车辆
    //------------------------------------------------------
    GraphPanel demoPanel;
    Thread currentThread;
    //------------------------------------------------------
    //constractor
    public DemoManger(AppFrame appFrame) {
        frame = appFrame;
        nodePool = new ClientNode[100];
        //默认为按预定义的位置摆放节点
        randomPosition = false;
        //读取默认的range和时间设置
        loadDefaultSettings();
    }

    public void start()
    {
        demoPanel = new GraphPanel(this);
        //将演示面板加入到Frame中--将来要放回这里
        frame.getContentPane().add(demoPanel,BorderLayout.CENTER);
        createNodes();
        currentThread = new Thread(demoPanel);
        currentThread.start();
    }

    //显示节点
    void createNodes()
    {
        long id;
        int x,y,range,validRange;

        range = Integer.parseInt(Range_Time.getProperty("range"));
        validRange = Integer.parseInt(Range_Time.getProperty("validRange"));

        String temp;
        //for(int i = 0; i < ID_Position.size(); i++) {
        for(int i = 0; i < 2; i++){
            id = i;
            temp = ID_Position.getProperty(String.valueOf(id));
            x = Integer.parseInt(temp.substring(0,temp.indexOf(":")));
            y = Integer.parseInt(temp.substring(temp.indexOf(":")+1) );
            ClientNode node = new ClientNode(range,validRange,new Point(x,y),id,
                                             this.Range_Time,this.ID_Position);
            //新建节点加入节点池
            nodePool[i] = node;
            demoPanel.addNode(node);
            node.init();
        }
    }

    //利用给定的数据进行更新原始设定
    void updateDefaultSetting(String data)
    {
        StringTokenizer st = new StringTokenizer(data,"@");
        String temp;
        while(st.hasMoreTokens())
        {
            temp = st.nextToken();
            if(temp.length() == temp.indexOf(":")+1)
                continue;
            this.Range_Time.setProperty(temp.substring(0,temp.indexOf(":")),
                                        temp.substring(temp.indexOf(":")+1));

        }
    }
    //读取默认的range和时间设置
    void loadDefaultSettings()
    {
        Range_Time = new Properties();
        ID_Position = new Properties();
        pptFile = new File( "properties/Range_Time.property" );
        rtFile = new File( "properties/ID_Position.property" );
        try {
            //load Range_Time
            FileInputStream fis = new FileInputStream( pptFile );
            Range_Time.load( fis );
            //load ID_Position
            fis = new FileInputStream( rtFile );
            ID_Position.load(fis);
            fis.close();
        }
        catch( FileNotFoundException fnfe ) {
            System.out.println( "Error:找不到属性文件!" );
            return;
        }
        catch( IOException ioe ) {
            System.out.println( "Error:不能读取属性文件!" );
            return;
        }
    }
    //设置随机位置的标志
    void setRandom(boolean isRandom)
    {
        if(isRandom)
            randomPosition = true;
        else
            randomPosition = false;
    }
    //将Properties中的内容变为随机值
    void setRandomPosition()
    {
        for(int i = 0; i < this.Range_Time.size(); i++) {
            this.ID_Position.setProperty(String.valueOf(i),
                                        String.valueOf((int)(Math.random()*791))+":"+
                                        String.valueOf(((int)Math.random()*388)));
        }
    }
}

⌨️ 快捷键说明

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