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

📄 grapher.java

📁 JAVA FTP客户端经典
💻 JAVA
字号:
import java.io.*;import java.net.*;import java.util.*;import java.awt.*;import javax.swing.*;public class Grapher extends Canvas{public String files[] = new String[] {"JFtp.java", "LoadSet.java","EventCollector.java", "EventProcessor.java", "FtpEvent.java","DirCellRenderer.java","DirPanel.java","Displayer.java","HostChooser.java","HostList.java","Properties.java","Updater.java","GUIDefaults.java","HPasswordField.java","DataConnection.java","FtpClient.java","FtpConnection.java","FtpConstants.java","FtpServerSocket.java","FtpURLConnection.java","FtpURLStreamHandler.java","JConnection.java","LocalIO.java","Log.java","Log4JLogger.java","Logger.java","SystemLogger.java","CommandLine.java","SaveSet.java","Settings.java","Acceptor.java","Event.java","EventHandler.java","FtpEventConstants.java","FtpEventHandler.java","AutoRemover.java","Creator.java","DirCanvas.java","DirEntry.java","DirLister.java","DownloadList.java","LoadPanel.java","PathChanger.java","RemoteCommand.java","Remover.java","RemoverQuery.java","ResumeDialog.java","StatusCanvas.java","StatusPanel.java","Template.java","HFrame.java","HImage.java","HImageButton.java","HPanel.java","HTextField.java","ConnectionHandler.java","ConnectionListener.java","FtpServer.java","Transfer.java","StringUtils.java" };public String prefix =  "/home/cdemon/JFtp/j-ftp/src/java/net/sf/jftp/";public String[] paths = new String[] { prefix, prefix+"gui/", prefix+"net/", prefix+"util/", prefix+"config/", prefix+"gui/framework",								   prefix+"event/" };public Hashtable table = new Hashtable();public Hashtable pool = new Hashtable();public static int width = 800;public static int height = 600;public Grapher(){ setSize(width,height); try {	for(int i=0; i<files.length; i++)	{		File f = getFile(files[i]);		if(f != null && f.exists())		{			for(int j=0; j<files.length; j++)			{				int x = countRelations(f, files[j]);				if(x > 0) table.put(files[i] + ":" +files[j].substring(0, files[j].indexOf(".java")),  new String(""+x));			}		}	} show(); repaint(); } catch(Exception ex) { 	ex.printStackTrace(); }}public void paint(Graphics g){	// init	g.setColor(Color.white);	g.fillRect(0,0,getSize().width, getSize().height);	g.setColor(Color.blue);	g.setFont(new Font("serif", Font.BOLD, 14));	// points 	Random r = new Random();	for(int i=0; i<files.length; i++)	{		while(true)		{			int x = r.nextInt(width-200);			int y = r.nextInt(height-20);			if(y<30) y=30;			if(check(x, y))			{				//System.out.println("adding: " + files[i]);				String tmp = files[i].substring(0,files[i].indexOf(".java"));				Point p = new Point(x, y);				pool.put(tmp, p);				linkPoints(g, p);				//g.drawString(tmp, x, y);				break;			}		}	}	g.setColor(Color.blue);	for(int i=0; i<files.length; i++)	{		String tmp = files[i].substring(0,files[i].indexOf(".java"));		Point p2 = (Point) pool.get(tmp);		if(p2 == null) continue;		//g.setColor(new Color(255,180,180));		//g.fillRect((int)  p2.getX(), (int)  p2.getY()-12, 80,  15);		//g.setColor(Color.blue);		g.drawString(tmp, (int)  p2.getX(), (int)  p2.getY());	}}public void linkPoints(Graphics g, Point p){	// fill	Enumeration k = table.keys();	Enumeration e = table.elements();	String xk = null;	String file = null;	String link = null;	while(k.hasMoreElements())	{		xk = (String) k.nextElement();		int x = Integer.parseInt((String)e.nextElement());		file = xk.substring(0, xk.indexOf(":"));		file = file.substring(0,file.indexOf(".java"));		link = xk.substring( xk.indexOf(":")+1);		//System.out.println("<" + file + "> " + "(" + link + ")" + " - " + x);		Point x2 = (Point) pool.get(file);		if(x2 == null) continue;		if(x > 0)		{			//for(int y=0; y<x; y++)			//{				int color = 255 - x*10 +40;				if(color < 0) color=0;				if(color > 255) color = 255;				g.setColor(new Color(color,color,color));				if(color < 255) g.drawLine(((int)p.getX()+20),((int)p.getY()+15),((int)x2.getX()+20),((int)x2.getY()+15));			//}		}	}}public boolean check(int x, int y){	Enumeration e = pool.elements();	Point d = null;	int a;	int b;	while(e.hasMoreElements())	{		d = (Point) e.nextElement();		a = (int) d.getX();		b = (int) d.getY();		if(a > x-100 && a < x+100) {			if(b > y-20 && b < y +20)			{				return false;			}		}	}	return true;}public int countRelations(File f, String what) throws IOException{	int x = 0;	String tmp;	what = what.substring(0, what.indexOf(".java"));  	URL url = f.toURL();	DataInputStream in = new DataInputStream(new BufferedInputStream(url.openStream()));	while(true)	{		tmp = in.readLine();		//System.out.println(f.getAbsolutePath() + ": " + tmp + ": " +what);		if(tmp == null) break;		if(tmp.indexOf(what) >= 0) x++;	}	in.close();	return x;}public File getFile(String name){	for(int i=0; i<paths.length; i++)	{		File f = new File(paths[i]+name);		if(f.exists()) return f;	}	return null;}public static void main(String argv[]){	Grapher g = new Grapher();	JFrame j = new JFrame();	j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);	j.getContentPane().setLayout(new BorderLayout(5,5));	j.setSize(width+10,height+25);	j.getContentPane().add("Center",g);	j.show();}}

⌨️ 快捷键说明

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