亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? graphpanel.java

?? 一個(gè)RIP協(xié)議模擬程序..在一個(gè)工作空間之內(nèi)畫上一些路由跟網(wǎng)絡(luò),再畫上它們之間的連線.系統(tǒng)后臺(tái)用一個(gè)線程實(shí)現(xiàn)模擬路由發(fā)送路由表信息.輸出路由表的更新內(nèi)容跟過程.
?? JAVA
字號(hào):

package network;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.geom.Line2D;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.util.ArrayList;

import javax.swing.JPanel;
import javax.swing.JTextArea;


/**
 * @author new
 *
 */
public class GraphPanel extends JPanel{
	private Toolbar toolbar;
	private ArrayList nodes;
	private ArrayList links;
	private ArrayList netNodes;
	private Object selected;
	private Point2D lastMousePoint;
    private Point2D rubberBandStart;
    private Point2D dragStartPoint;
    private Rectangle2D dragStartBounds;
    private JTextArea info;
	private static final Color PURPLE = new Color(0.7f, 0.4f, 0.7f);   
	public GraphPanel(Toolbar t,JTextArea info){
		this.toolbar=t;
		this.info=info;
	    setBackground(Color.WHITE);
		init();
		this.setLayout(null);
	}
	private void init(){
		nodes=new ArrayList();
		links=new ArrayList();
		netNodes=new ArrayList();

		this.addMouseListener(new MouseAdapter(){
			public void mousePressed(MouseEvent e){
				Point2D mousePoint=new Point2D.Double(
						e.getX(), e.getY());
				Node n=findNode(mousePoint);
				Link l=findLink(mousePoint);
				NetNode net=findNetNode(mousePoint);
				String tool=toolbar.getSelectedTool();
				if(tool.equals("node")||tool.equals("netNode")){
					boolean added=addNode(n,mousePoint);
					if(added){
						if(tool.equals("node")){
							Node newNode=new Node(mousePoint);
							nodes.add(newNode);
		                    selected = newNode;
		                    dragStartBounds = newNode.getBounds();
		                    dragStartPoint = mousePoint;
						}				
						else{

							NetNode newNode=new NetNode(mousePoint);
							netNodes.add(newNode);
		                    selected = newNode;
		                    dragStartBounds = newNode.getBounds();
		                    dragStartPoint = mousePoint;
						}
					}
					else if(n!=null){
						selected=n;
	                    dragStartBounds = n.getBounds();
	                    dragStartPoint = mousePoint;						
					}
					else if(net!=null){
						selected=net;
	                    dragStartBounds = net.getBounds();
	                    dragStartPoint = mousePoint;
					}
				}
				else if (tool.equals("distroy")){
					if(net!=null){
						if(net.getStatus()==NetNode.ative){

							net.setStatus(NetNode.distroy);
						}
						else{
							net.setStatus(NetNode.ative);
						}
						selected=net;
					}
					
				}
				else if(tool.equals("link")){
					if(n!=null){
						selected=n;
						rubberBandStart = mousePoint;
					}
					else if(net!=null){
						selected=net;
						rubberBandStart = mousePoint;						
					}
				}
				else{
					if (l != null)
	                  {
	                     selected = l;
	                  }
	                  else if (n != null)
	                  {
	                     selected = n;
	                     dragStartBounds = n.getBounds();
	                     dragStartPoint = mousePoint;
	                  }
	                  else if (net != null)
	                  {
	                     selected = net;
	                     dragStartBounds = net.getBounds();
	                     dragStartPoint = mousePoint;
	                  }
	                  else 
	                  {
	                     selected = null;
	                     
	                  }
				}
				
	            lastMousePoint = mousePoint;
	            
	            repaint();
			}			
			
			public void mouseReleased(MouseEvent e){
				String tool=toolbar.getSelectedTool();
				if(rubberBandStart!=null){
					Point2D mousePoint=new Point2D.Double(
							e.getX(), e.getY());
					if(selected instanceof NetNode){
						Node n=findNode(mousePoint);
						if(n!=null){
							NetNode net=(NetNode)selected;
							Link l=new Link(net,n);
							links.add(l);
							n.addLink(l);
							net.addLink(l);
							selected=l;
						}
					}
					else if(selected instanceof Node){
						NetNode net=findNetNode(mousePoint);
						if(net!=null){
							Node n=(Node)selected;
							Link l=new Link(net,n);
							net.addLink(l);
							n.addLink(l);
							links.add(l);
							selected=l;
						}
					}
					
				}

	               revalidate();
	               repaint();

	               lastMousePoint = null;
	               dragStartBounds = null;
	               rubberBandStart = null;
			}
			public void mouseClicked(MouseEvent e){
				Point2D mousePoint=new Point2D.Double(
						e.getX(), e.getY());
				Node n=findNode(mousePoint);
				if(n!=null){
					info.setText(n.toString());
				}
			}
			
		});
		this.addMouseMotionListener(new MouseMotionAdapter(){
			public void mouseDragged(MouseEvent e){
				Point2D mousePoint=new Point2D.Double(
						e.getX(), e.getY());
				if(dragStartBounds!=null){
					if(selected instanceof Node){
						Node n=(Node)selected;
						n.translate(e.getX()-n.getBounds().getX()
								+dragStartBounds.getX()-dragStartPoint.getX(),
								e.getY()-n.getBounds().getY()
								+dragStartBounds.getY()-dragStartPoint.getY());
					}
					else if(selected instanceof NetNode){
						NetNode net=(NetNode)selected;
						net.translate(e.getX()-net.getBounds().getX()
								+dragStartBounds.getX()-dragStartPoint.getX(),
								e.getY()-net.getBounds().getY()
								+dragStartBounds.getY()-dragStartPoint.getY());
					}
				}
	            lastMousePoint = mousePoint;
	            repaint();
			}
			public void mouseMoved(MouseEvent e){
				
				
			}
		});
		//this.setSize(1000, 700);
	}
	private Rectangle2D getBs(){
		Rectangle2D r=null;
		for(int i=0;i<nodes.size();i++){
			Node n=(Node)nodes.get(i);
			Rectangle2D b=n.getBounds();
			if(r==null){
				r=b;
			}
			else{
				r.add(b);
			}
		}
		for(int i=0;i<netNodes.size();i++){
			NetNode net=(NetNode)netNodes.get(i);
			Rectangle2D b=net.getBounds();
			if(r==null){
				r=b;
			}
			else{
				r.add(b);
			}
		}
		return r == null ? new Rectangle2D.Double() : r;
	}
	public Dimension getPreferredSize(){
		Rectangle2D r=this.getBs();
		return new Dimension(10*(int)r.getMaxX(),10*(int)r.getMaxY());
	}
	private boolean addNode(Node n,Point2D p){
		for(int i=0;i<nodes.size();i++){
			Node x=(Node)nodes.get(i);
			if(x.contains(p)){
				return false;
			}
		}
		for(int i=0;i<netNodes.size();i++){
			NetNode x=(NetNode)netNodes.get(i);
			if(x.contains(p)){
				return false;
			}
		}
		return true;
	}
	protected Node findNode(Point2D p){
		
		for(int i=0;i<nodes.size();i++){
			Node n=(Node)nodes.get(i);
			if(n.contains(p)){
				return n;
			}
		}
		return null;
	}
	
	protected Link findLink(Point2D p){
		
		for(int i=0;i<links.size();i++){
			Link l=(Link)links.get(i);
			if(l.contains(p)){
				return l;
			}
		}
		return null;
	}

	protected NetNode findNetNode(Point2D p){
		
		for(int i=0;i<netNodes.size();i++){
			NetNode net=(NetNode)netNodes.get(i);
			if(net.contains(p)){
				return net;
			}
		}
		return null;
	}
	
	
	
	
	public void paintComponent(Graphics g){
		super.paintComponent(g);
		Graphics2D g2d=(Graphics2D)g;
		for(int i=0;i<nodes.size();i++){
			Node n=(Node)nodes.get(i);
			n.draw(g2d);
		}
		for(int i=0;i<links.size();i++){
			Link l=(Link)links.get(i);
			l.draw(g2d);
		}
		for(int i=0;i<netNodes.size();i++){
			NetNode net=(NetNode)netNodes.get(i);
			net.draw(g2d);
		}
		if(nodes.contains(selected)){
			Rectangle2D grabberBounds = ((Node)selected).getBounds();
	         drawGrabber(g2d, grabberBounds.getMinX(), grabberBounds.getMinY());
	         drawGrabber(g2d, grabberBounds.getMinX(), grabberBounds.getMaxY());
	         drawGrabber(g2d, grabberBounds.getMaxX(), grabberBounds.getMinY());
	         drawGrabber(g2d, grabberBounds.getMaxX(), grabberBounds.getMaxY());
		}
		else if(links.contains(selected)){
			Line2D line=((Link)selected).getConnectionPoints();
			drawGrabber(g2d, line.getX1(), line.getY1());
	        drawGrabber(g2d, line.getX2(), line.getY2());
		}
		else if(netNodes.contains(selected)){
			Rectangle2D grabberBounds = ((NetNode)selected).getBounds();
	         drawGrabber(g2d, grabberBounds.getMinX(), grabberBounds.getMinY());
	         drawGrabber(g2d, grabberBounds.getMinX(), grabberBounds.getMaxY());
	         drawGrabber(g2d, grabberBounds.getMaxX(), grabberBounds.getMinY());
	         drawGrabber(g2d, grabberBounds.getMaxX(), grabberBounds.getMaxY());
		}

	      if (rubberBandStart != null)
	      {
	         Color oldColor = g2d.getColor();
	         g2d.setColor(PURPLE);
	         g2d.draw(new Line2D.Double(rubberBandStart, lastMousePoint));
	         g2d.setColor(oldColor);
	      }
	}
	   public static void drawGrabber(Graphics2D g2, double x, double y)
	   {
	      final int SIZE = 5;
	      Color oldColor = g2.getColor();
	      g2.setColor(PURPLE);
	      g2.fill(new Rectangle2D.Double(x - SIZE / 2,
	         y - SIZE / 2, SIZE, SIZE));      
	      g2.setColor(oldColor);
	   }
	   
	   public ArrayList getNodes(){
		   return this.nodes;
	   }
	   public ArrayList getLinks(){
		   return this.links;
	   }
	   public ArrayList getNetNode(){
		   return this.netNodes;
	   }
	   public void reset(){
		   nodes.clear();
		   links.clear();
		   netNodes.clear();
		   selected=null;
           lastMousePoint = null;
           dragStartBounds = null;
           rubberBandStart = null;
           dragStartPoint=null;
	   }

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91亚洲精品久久久蜜桃网站| 蜜臀av一区二区| 99久久精品国产一区| 国产欧美一区二区精品性色超碰| 国产一区 二区| 国产日韩精品一区| 92国产精品观看| 亚洲精品一二三| 91麻豆精品国产91久久久更新时间 | 亚洲成av人综合在线观看| 91久久精品网| 麻豆精品视频在线观看免费 | 国产一区二区三区黄视频| 精品日韩欧美在线| 成人av在线电影| 亚洲一区影音先锋| 精品日韩在线一区| 成人av在线一区二区三区| 亚洲国产色一区| 精品久久久网站| 一本一道久久a久久精品综合蜜臀| 亚洲欧美日韩在线播放| 欧美精品色一区二区三区| 国产麻豆精品在线观看| 亚洲欧美视频在线观看视频| 91精品国产欧美日韩| 国产91对白在线观看九色| 亚洲黄色av一区| 欧美成va人片在线观看| 99riav一区二区三区| 日本不卡高清视频| 中文字幕一区二区三区视频| 91麻豆精品91久久久久同性| 国产成人精品亚洲日本在线桃色| 亚洲一区二区三区中文字幕在线| 欧美成人一区二区三区在线观看| 99久久婷婷国产综合精品| 日韩av在线发布| 中文字幕免费观看一区| 欧美一区在线视频| 91丨porny丨最新| 精品一区二区在线免费观看| 中文字幕综合网| 久久久久国产免费免费| 7777精品伊人久久久大香线蕉完整版 | 日韩欧美国产综合一区 | 亚洲一区二区三区精品在线| 久久久99久久| 欧美一区二区久久久| 91天堂素人约啪| 国产精品系列在线播放| 日韩黄色免费电影| 亚洲桃色在线一区| 久久综合久久综合亚洲| 3atv在线一区二区三区| 在线区一区二视频| av欧美精品.com| 国产盗摄一区二区三区| 免费成人在线视频观看| 亚洲午夜一区二区三区| 亚洲欧美另类图片小说| 国产精品乱码一区二区三区软件 | 亚洲精品日韩综合观看成人91| 精品99久久久久久| 6080yy午夜一二三区久久| 在线一区二区观看| 色综合久久久久网| 91丨九色丨尤物| av不卡一区二区三区| 成人国产视频在线观看| 粉嫩绯色av一区二区在线观看| 国内精品久久久久影院薰衣草| 久久国产福利国产秒拍| 麻豆国产欧美一区二区三区| 青青草精品视频| 男女男精品视频| 蜜桃av一区二区| 麻豆一区二区99久久久久| 免费观看久久久4p| 久久国内精品视频| 美女网站色91| 精品一区二区三区av| 九九久久精品视频| 国产一区免费电影| 成人手机电影网| av电影在线不卡| 日本电影亚洲天堂一区| 色一区在线观看| 欧美日韩亚州综合| 欧美一区二区三区视频免费播放| 91精品国模一区二区三区| 欧美大片顶级少妇| 久久久久久97三级| 亚洲少妇30p| 亚洲第一搞黄网站| 日韩高清不卡一区二区| 久88久久88久久久| 97精品久久久午夜一区二区三区 | 丁香六月久久综合狠狠色| 成人综合婷婷国产精品久久蜜臀| 成人18视频日本| 欧美日韩精品专区| 精品国免费一区二区三区| 国产视频一区二区在线观看| 亚洲色图制服诱惑| 日韩高清一区在线| 国产成人免费视频网站 | 日本最新不卡在线| 国产精品996| 日本乱码高清不卡字幕| 欧美一区中文字幕| 国产精品久久久久永久免费观看 | 亚洲一区二区三区视频在线播放| 免费精品99久久国产综合精品| 国产成人综合亚洲91猫咪| 91在线观看美女| 日韩精品最新网址| 亚洲日本青草视频在线怡红院| 日本v片在线高清不卡在线观看| 国产不卡免费视频| 在线播放欧美女士性生活| 国产女主播在线一区二区| 亚洲一区av在线| 国产精品一区二区三区乱码| 欧美性受xxxx| 欧美激情资源网| 香蕉加勒比综合久久| 国产91丝袜在线播放九色| 欧美精品久久99久久在免费线| 欧美激情一区三区| 麻豆精品一区二区综合av| 色综合久久久久| 久久精品男人天堂av| 午夜a成v人精品| 色综合欧美在线| 国产丝袜欧美中文另类| 日日夜夜精品视频免费| 91丨porny丨蝌蚪视频| 久久先锋资源网| 日韩在线一区二区| 在线视频欧美精品| 成人欧美一区二区三区黑人麻豆 | 久久久www免费人成精品| 日韩av一区二区三区四区| 91小视频在线观看| 国产欧美精品日韩区二区麻豆天美 | 日韩欧美不卡一区| 亚洲成精国产精品女| fc2成人免费人成在线观看播放| 精品国产自在久精品国产| 天堂久久久久va久久久久| 色婷婷精品大视频在线蜜桃视频| 国产亚洲va综合人人澡精品| 美国毛片一区二区| 欧美一区二区三区不卡| 亚洲亚洲人成综合网络| 91麻豆产精品久久久久久 | 26uuu色噜噜精品一区| 日韩电影免费一区| 在线综合+亚洲+欧美中文字幕| 亚洲一线二线三线久久久| 91美女片黄在线观看| 中文字幕在线观看一区二区| 风间由美性色一区二区三区| 国产三级精品视频| 国产福利91精品| 国产亚洲精品精华液| 国产suv精品一区二区6| 国产视频在线观看一区二区三区 | 国产不卡免费视频| 国产欧美日韩中文久久| 国产精品一区在线观看你懂的| 久久久久国产免费免费| 国产高清亚洲一区| 欧美国产乱子伦 | 色妞www精品视频| 日韩一区欧美小说| 成人高清av在线| 亚洲裸体xxx| 色爱区综合激月婷婷| 亚洲一区二区三区国产| 欧美日韩精品一区二区三区蜜桃| 亚洲va韩国va欧美va精品| 欧美一区二区三区日韩视频| 久久国产精品免费| 中文字幕成人在线观看| 99久久婷婷国产综合精品电影| 亚洲欧美日韩国产手机在线 | 久久99精品国产.久久久久| 国产亚洲欧美一区在线观看| 成人污污视频在线观看| 亚洲黄色av一区| 日韩欧美一区二区三区在线| 国产揄拍国内精品对白| 欧美r级在线观看| thepron国产精品| 亚洲福利一区二区| 久久久久久久免费视频了| 99精品一区二区| 日韩成人午夜电影|