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

📄 bsxdisplay.java

📁 java telnet... program theat uses telnet made in java
💻 JAVA
字号:
/* * BSXDisplay 	-- a graphics component for drawing BSX Objects on * -- * $Id: BSXDisplay.java,v 1.1 1997/12/16 10:59:49 leo Exp $ * $timestamp: Thu Feb 15 00:47:34 1996 by Matthias L. Jugel :$  */package modules.bsx;import java.awt.*;import java.util.Hashtable;import java.util.Enumeration;import java.util.Vector;public class BSXDisplay extends Frame{private int Scale = 100;		/* display scale */  private Hashtable scenes;		/* scene store */private Hashtable objects;		/* object store */  private String curScene = "";		/* current scene */  private Image imageBuffer;private Graphics gBuffer;public BSXDisplay() { this("BSXModule - Visit Regenbogen rb.mud.de:4780"); }public BSXDisplay(String title) {  super(title);  addNotify();  imageBuffer = createImage(511,255);  if(imageBuffer==null) {    System.out.println("Couldn't create an offscreen-image :(");    System.exit(1);    }  gBuffer = imageBuffer.getGraphics();  scenes = new Hashtable();   objects = new Hashtable();  setScale(100);  resize(510,255);  show();}  public void setScale(int scale) {  Scale = scale;  resize(511 * Scale / 100, 255 * Scale / 100);}    /* add a scene to the store, do not yet display */public void addScene(String id, BSXGraphic picture)  {    BSXScene scene = new BSXScene(picture);    BSXScene sc = (BSXScene)scenes.get(id);    if(sc != null)      {	scene.objects = sc.objects;	scenes.remove(id);      }    scenes.put(id, scene);    if(curScene.equals(id)) redraw();  }    /* show current scene */public boolean showScene() { return showScene(curScene); }    /* show scene given as argument */public boolean showScene(String id)  {    curScene = id;    if(!scenes.containsKey(id))       {	addScene(id, new BSXGraphic());	return false;      }    redraw();    return true;  }    /* add object to store */public void addObject(String id, BSXGraphic o)  {    objects.put(id, o);    BSXScene scene = (BSXScene)scenes.get(curScene);    if(scene != null && scene.objects.containsKey(id)) redraw();  }    /* show object at position 0, layer 0 */public boolean showObject(String id) { return showObject(id, 0, 0); }    /* show object at position in layer */public boolean showObject(String id, int position, int layer)  {    BSXScene scene = (BSXScene)scenes.get(curScene);        /* add object to scene database */    if((scene = (BSXScene)scenes.get(curScene)) == null)       {	addScene(curScene, new BSXGraphic());	scene = (BSXScene)scenes.get(curScene);      }        BSXObject o = new BSXObject(position, layer);    scene.objects.put(id, o);        /* check if object is in our database */    if(!objects.containsKey(id)) return false;        redraw();    return true;  }    /* remove object from scene, if scene exists */public boolean removeObject(String id)  {    BSXScene scene = (BSXScene)scenes.get(curScene);    if(scene != null)      {	BSXObject o = (BSXObject)scene.objects.get(id);	scene.objects.remove(id);	if(o != null) 	  redraw();      }    return true;  }    /* redraw image buffer */public void redraw()  {    BSXScene scene = (BSXScene)scenes.get(curScene);    if(scene == null) return;        Vector[] layer = new Vector[8];    /* create layers */    for(Enumeration e = scene.objects.keys(); e.hasMoreElements();)       {	String key; key = (String)e.nextElement();	BSXObject o = (BSXObject)scene.objects.get(key);	if(layer[o.layer] == null) layer[o.layer] = new Vector();	layer[o.layer].addElement(key);      }        /* draw background graphic */    if(scene.background != null && scene.background.size() > 0)      drawPicture(scene.background);    else      return;        /* display layers from back to front */    for(int l = 7; l >= 0; l--)      if(layer[l] != null)	for(int o = layer[l].size()-1; o >= 0; o--)	  {	    BSXObject obj = (BSXObject)	      scene.objects.get(layer[l].elementAt(o));	    drawPicture((BSXGraphic)objects.get(layer[l].elementAt(o)),			16 * obj.position, 4 * obj.layer);	  }    paint(getGraphics());  }  public Point Translate(int x, int y, 		       int centreX, int centreY, int scale)  {    return new Point((       x - 127 + centreX)  * 2 * scale / 100,                     (255 - (y - 127 + centreY))     * scale / 100);  }  public void drawPicture(BSXGraphic pic) { drawPicture(pic, 127, 127); }  public void drawPicture(BSXGraphic pic, int position, int layer)  {    if(pic == null) return;    int ap = pic.size();    for(int i = 0; i < ap; i++)      {	BSXPolygon poly = (BSXPolygon)pic.elementAt(i);	Polygon p = new Polygon();	gBuffer.setColor(poly.getColor());	for(int j = poly.npoints - 1; j >= 0; j--)	  {	    Point pt = Translate(poly.xpoints[j], poly.ypoints[j], 				 position, layer, Scale);	    p.addPoint(pt.x, pt.y);	  }	gBuffer.fillPolygon(p);      }  }  public boolean mouseEnter(Event evt, int x, int y)  {    //System.out.println("MOUSE ENTERS");    requestFocus();    return true;  }    public void update(Graphics g)  {    paint(g);  }    public void paint(Graphics g)  {    g.drawImage(imageBuffer, 0, 0, this);  }}

⌨️ 快捷键说明

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