📄 demomanger.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 + -