❶ 用java swing开发一个画拓扑图和波形图的解决方案
iTopoview是专门面向网络拓扑图领域的界面组件,基于标准版Java(J2SE) Swing和Java2D图形技术,可在Web applet或GUI应用程序中使用。开发人员无需了解任何图形技术,通过简单的数据驱动方式,即可创建出专业高效的网络拓扑图界面,并且集成了菜单、鼠标、用户业务数据、告警等操作, 使用iTopoview可以将网络拓扑图开发的工作量从传统的数个人.月缩减到一个星期左右,让开发人员将重点迅速焦距至客户业务。
❷ 有人在用java做网络拓扑节点自动发现吗
ObjectSNMP是采用Java技术和SNMP技术实现的网络拓扑发现产品,目前的功能如下:全网设备发现:可以按网络号、IP范围、多个网络范围内,自动搜索发现设备,获取设备的基本信息、设备类型(交换、路由、路由交换、终端设备、厂商特有类型等)
❸ JAVA有拓扑排序的类库么
java标准类库里面没有,标准类库中的排序都使用的Connections类中的静态方法,而其中的排序算法要求是稳定的,而拓扑排序是不稳定的,所以是不会采用这种算法的
❹ 基于tomcat搭建的java测试环境的拓扑图怎么画
先安装JDK,然后配置环境(没JDK或者不会下就留邮箱我,发你) 配置环境步骤如下: 首先右键点我的电脑,打开属性。然后选择“高级”里面的“环境变量”,在新的打开界面中的系统变量里需要设置三个属性: “java_home”、 “path”、“classpath” 其中在没安装过jdk的环境下,path属性是本来存在的。而java_home和classpath是不存在的。 首先在“Administrator的用户变量”区点“新建”,然后在变量名写上java_home,其含义就是java的安装路径,呵呵,然后在变量值写入刚才安装的路径“C:\Program Files\Java\jdk1.6.0_10”(不含引号) 其次在“系统变量”里面找到path,然后点编辑,(里面已经有很多了,但千万不要把他们给删了!!!!!!) path变量的含义就是系统在任何路径下都可以识别java命令, 在原有的最前面插入“C:\Program Files\Java\jdk1.6.0_10\bin;”(不含引号),此处“C:\Program Files\Java\jdk1.6.0_10”不可替换为“%java_home%”,具体原因我也不清楚 最后在“系统变量”区点“新建”,在变量名上写classpath,该变量的含义是为java加载类(class或lib)路径,只有类在classpath中,java命令才能识别。 其值为“.;%java_home%\lib\tools.jar;%java_home%\lib\dt.jar;”(不含引号) 以上三个变量设置完毕,则按“确定”(别忘了确定!呵呵)直至属性窗口消失,下来是验证看看安装是否成功。 先打开“开始”->“运行”,输入“cmd”,进入 然后打“java -version”,如果安装成功。系统会显示java的版本信息。 注: 也可不建java_home,但所有出现“%java_home%”的地方都要完整填写“C:\Program Files\Java\jdk1.6.0_10”
❺ 求一个实现网络拓扑的JAVA程序
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class Io {
public static void main(String[] args) {
//没有用excel表格随便用了一个txt文本文档你参考下
File fl=new File("src/test.txt");//输出目的文件,没有文件会自动创建
try {
FileOutputStream out=new FileOutputStream(fl);//输出流
FileChannel Channel=out.getChannel();
ByteBuffer buff= ByteBuffer.allocate(100);//缓冲区长度
byte by[]="Hello 文本内容进行输出测试 ".getBytes();//设置内容
buff.put(by);//把内容放进缓冲区
buff.flip();
try {
Channel.write(buff);// 将字节序列从给定的缓冲区写入此通道
Channel.close();//关闭此通道
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
❻ java prefuse 拓扑图,生成图片并下载
你可以参考下这个类-------------
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
class Diagram_Panel extends JPanel {
private Rectangle btnNew = new Rectangle(10, 10, 82, 22);
private int state;
private Random rnd = new Random();
private int[][] vertices;
private int[][] params;
private int[][] linked;
public Diagram_Panel () {
setBackground(Color.WHITE);
addMouseMotionListener(new MouseMotionAdapter() {
@Override public void mouseMoved (MouseEvent me) {
if (me.getX() >= btnNew.x && me.getX() <= btnNew.x + btnNew.width && me.getY() >= btnNew.y && me.getY() <= btnNew.y + btnNew.height) {
if (state != 1) {
state = 1;
repaint();
}
} else {
if (state != 0) {
state = 0;
repaint();
}
}
}
@Override public void mouseDragged (MouseEvent me) {
if (state == 2 || state == 1) {
if (me.getX() >= btnNew.x && me.getX() <= btnNew.x + btnNew.width && me.getY() >= btnNew.y && me.getY() <= btnNew.y + btnNew.height)
if (state != 2)
state = 2;
else
if (state != 1)
state = 1;
repaint();
}
}
});
addMouseListener(new MouseAdapter() {
@Override public void mousePressed (MouseEvent me) {
if (state == 1) {
state = 2;
newGraph();
}
}
@Override public void mouseReleased (MouseEvent me) {
if (me.getX() >= btnNew.x && me.getX() <= btnNew.x + btnNew.width && me.getY() >= btnNew.y && me.getY() <= btnNew.y + btnNew.height)
state = 1;
else
state = 0;
repaint();
}
});
}
private void mouseOver (Rectangle btn, String str, Graphics g) {
Color tmp = g.getColor();
g.setColor(Color.GRAY);
g.fillRect(btn.x, btn.y, btn.width+1, btn.height+1);
g.setColor(Color.WHITE);
g.drawLine(btn.x, btn.y, btn.x, btn.y+btn.height-1);
g.drawLine(btn.x, btn.y, btn.x+btn.width-1, btn.y);
g.drawString(str, btn.x+10, btn.y+15);
g.setColor(tmp);
}
private void mouseOff (Rectangle btn, String str, Graphics g) {
Color tmp = g.getColor();
g.setColor(Color.BLACK);
g.drawRect(btn.x+1, btn.y+1, btn.width, btn.height);
g.setColor(Color.WHITE);
g.fillRect(btn.x, btn.y, btn.width, btn.height);
g.setColor(Color.BLACK);
g.drawRect(btn.x, btn.y, btn.width, btn.height);
g.drawString(str, btn.x+10, btn.y+15);
g.setColor(tmp);
}
private void mouseDown (Rectangle btn, String str, Graphics g) {
Color tmp = g.getColor();
g.setColor(Color.DARK_GRAY);
g.fillRect(btn.x+1, btn.y+1, btn.width+1, btn.height+1);
g.setColor(Color.WHITE);
g.drawLine(btn.x+2, btn.y+btn.height+1, btn.x+btn.width+1, btn.y+btn.height+1);
g.drawLine(btn.x+btn.width+1, btn.y+2, btn.x+btn.width+1, btn.y+btn.height+1);
g.drawString(str, btn.x+11, btn.y+16);
g.setColor(tmp);
}
@Override public void paint (Graphics g) {
super.paint(g);
switch (state) {
case 0:
mouseOff(btnNew, "New Graph", g);
break;
case 1:
mouseOver(btnNew, "New Graph", g);
break;
case 2:
mouseDown(btnNew, "New Graph", g);
break;
}
for (int i=0; i<vertices.length; i++)
for (int j=i+1; j<vertices.length; j++)
if (linked[i][j] > 0) {
g.drawLine(vertices[i][0]+5, vertices[i][1]+5, vertices[j][0]+5, vertices[j][1]+5);
g.drawString(linked[i][j]+"", (vertices[i][0]+vertices[j][0])/2, (vertices[i][1]+vertices[j][1])/2);
}
g.setColor(Color.WHITE);
for (int i=0; i<vertices.length; i++)
g.fillOval(vertices[i][0], vertices[i][1], 10, 10);
g.setColor(Color.BLACK);
for (int i=0; i<vertices.length; i++) {
g.drawOval(vertices[i][0], vertices[i][1], 10, 10);
g.drawString((char)(i+'A') + "(" + linked[i][0] + "," + linked[i][1] + ")", vertices[i][0]-5, vertices[i][1]-5);
}
}
public void newGraph () {
vertices = new int[rnd.nextInt(5)+3][2];
params = new int[vertices.length][2];
linked = new int[vertices.length][vertices.length];
for (int i=0; i<vertices.length; i++) {
while (true) {
vertices[i][0] = rnd.nextInt((int)(getWidth()*0.6)) + 100;
vertices[i][1] = rnd.nextInt((int)(getHeight()*0.6)) + btnNew.height + 100;
int j = 0;
for (; j<i; j++)
if (Math.abs(vertices[j][0] - vertices[i][0]) < 50 && Math.abs(vertices[j][1] - vertices[i][1]) < 50)
break;
if (j == i)
break;
}
}
for (int i=0; i<vertices.length; i++)
for (int j=i+1; j<vertices.length; j++)
if (rnd.nextInt(100) > 20)
linked[i][j] = rnd.nextInt(10)+1;
for (int i=0; i<vertices.length; i++) {
linked[i][0] = rnd.nextInt(10)+1;
linked[i][1] = rnd.nextInt(10)+1;
}
repaint();
}
}
public class Diagram extends JFrame {
public Diagram () {
super("Diagram -- shuangwhywhy");
setSize(600, 500);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Diagram_Panel dp = new Diagram_Panel();
dp.setBackground(Color.WHITE);
setContentPane(dp);
setVisible(true);
dp.newGraph();
}
public static void main (String args[]) {
new Diagram();
}
}
❼ 用JAVA帮我画个简单的拓扑图,要用java实现,麻烦写出代码,图是有向带权的,一共六个节点(0-5),节点到
说个思路,程序自己写。
你把你想画的图想成一个点阵面,也就是所以的点都是利用坐标实现就OK了,利用java 画图工具类 两点确定一条线(或者其他方法,基本都是一个思路)。关键的东西是坐标 比如0-5的向量线, 那就可以表示成 [0,0] -[0,5] 也可以是[5.5][5.10] 其他类推 (看你的角度而定,我这里都是 3点钟方向的) 其实思路很简单,就是看你想不想去做了。
PS :楼上广告?
❽ 网络拓扑发现的目前Java技术实现的拓扑发现产品
ObjectSNMP是采用Java技术和SNMP技术实现的网络拓扑发现产品,目前的功能如下:
全网设备发现:可以按网络号、IP范围、多个网络范围内,自动搜索发现设备,获取设备的基本信息、设备类型(交换、路由、路由交换、终端设备、厂商特有类型等)、MAC地址、ARP表、交换机端口、路由器接口、路由表、交换机转发表、主机IP地址等信息。
网络漫游发现:给定少数几个已知的网络号、IP范围,按用户指定的漫游深度和漫游广度,进行全网漫游发现。
网络拓扑自动发现:可以发现交换机与交换机、交换机与PC机、交换机与终端设备、交换机与路由器、路由交换机与路由交换机之间 的连接关系。连接关系可以定位到具体的设备端口、设备接口上。支持在任意指定的设备之间发现它们的所有连接,在全网范围内发现连接关系。
ObjectSNMP的物理拓扑自动发现采用了全新的技术:即支持单一Cisco、华为网络,也支持各种厂商设备混合网络。支持模糊连接定位,在数据不全或设备缺失的情况下,尽可能发现连接关系。可在任意的网络环境中工作,不需要用户对网络做任何假设(如路由器假设、根交换机假设、上/下行端口假设、边缘设备假设等)。
❾ 用JAVA帮我画个简单的拓扑图,要用java实现,麻烦写出代码,图是有向带权的,一共六个节点(0-5)
用JAVA帮我画个简单的拓扑图,要用java实现,麻烦写出代码,图是有向带权的,一共六个节点(0-5),节点到节点的关系如下 0 1 5(表示节点0到节点1的距离为5)
0 5 10
1 4 3
2 0 2
2 1 28
2 3 12
3 1 6
4 3 1
4 5 1
❿ 网络拓扑结构数据如何在java里面存储及维护 比如:用户属于一个机构,机构里面的负责人又关联
存储数据是由数据库来完成的,Java中可以通过hibernate的对象关系映射进行对象的关联存取,使得表中数据之间的关系,可以更直观地通过对象表现出来,而不是直白地通过数据库的主外键关联查找这些关系。