❶ 用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的對象關系映射進行對象的關聯存取,使得表中數據之間的關系,可以更直觀地通過對象表現出來,而不是直白地通過資料庫的主外鍵關聯查找這些關系。