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

📄 toolbox.java

📁 一个简单的visio程序。
💻 JAVA
字号:
package webide.views.toolbox;

import webide.MainConsole;
import java.awt.Panel;
import java.awt.Dimension;
import java.awt.MediaTracker;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Component;
import java.net.URL;
import java.util.Vector;
import java.util.Hashtable;
import webide.form.PainterForm;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.io.*;

public class ToolBox extends Panel implements MouseListener,MouseMotionListener/*,Runnable*/
{

	String   beans[] = {"VB.uparrow", "VB.downarrow", "VB.leftarrow", "VB.rightarrow",
                        "VB.rect", "VB.arris","VB.parallel","VB.arc"};
	String	images[] = {"UpArrow", "DownArrow", "LeftArrow", "RightArrow",
                        "Rect", "Arris", "parallel", "Arc"};

    int                     ctrlnum       =1;
    private int             standCtrl     =15;//20;
    ImageLabel              imagelabel[],tBCB;
    String                  classPath     = null;
    MediaTracker            mt;
    SymKey                  aSymKey       = new SymKey();
    public int              imageidex     = 0;
    public int              selected      = 0;
    Vector                  beanNames     = new Vector();
    public boolean          rembean       = false;
    Hashtable               beanJars      = new Hashtable();
    
    MainConsole applet;
	PainterForm form;
	public static ToolBox toolbox;

    public ToolBox(MainConsole applet1) {

  		this.applet=applet1;
  		this.form = applet1.pf;

        setBackground(Color.green);
        setLayout(new FlowLayout(FlowLayout.LEFT,0,1));

        ctrlnum += beans.length;
        imagelabel = new ImageLabel[ctrlnum];

        getToolboxImage();
        for (int i=0; i<imagelabel.length; i++)
        {
            if(imagelabel[i] != null)
            {
                add(imagelabel[i], i);
            }
        }
        addKeyListener(aSymKey);
        addMouseListener(this);
        setBackground(Color.lightGray);
        selected =0;
        imagelabel[selected].tmpstate3();
        tBCB = imagelabel[selected];
        requestFocus();
        toolbox = this;
    }

   public java.awt.Image getImage(String imgName) {

        java.net.URL url = applet.getCodeBase();
        String imgRes = applet.getParameter("imagesource") + "/"  + imgName;
        try {
        url = new URL(url,imgRes);
        }catch(Exception e) {
            e.printStackTrace();
        }
        if (url != null) {
            return applet.getImage(url);
        }else{
            return null;
        }

   }

   private synchronized void getToolboxImage()
   {
        mt = new MediaTracker(this);
        int id = 0;
        java.awt.Image img = getImage("Point.gif");
        mt.addImage(img, imageidex);
        imagelabel[imageidex] = new ImageLabel(img);
        imagelabel[imageidex].addMouseListener(this);
        imagelabel[imageidex].addMouseMotionListener(this);
        imagelabel[imageidex].addKeyListener(aSymKey);
        imagelabel[imageidex].setName("Point");
        imageidex++;

		if (beans != null)
		{
			for (int i=0; i<beans.length; i++) {
				int ind = beans[i].lastIndexOf('.');
				String beanName = images[i];
				java.awt.Image image = getImage(beanName + ".gif");
				mt.addImage(image, imageidex);
				imagelabel[imageidex]   = new ImageLabel(image);
				imagelabel[imageidex].addMouseListener(this);
				imagelabel[imageidex].addMouseMotionListener(this);
				imagelabel[imageidex].addKeyListener(aSymKey);
				imagelabel[imageidex].setName(beanName);
				imageidex++;
			}
		}

		try{
			mt.waitForAll();
		}catch (Exception e) {}
   }   // end of getToolboxImage.

   public void mouseDragged(MouseEvent evt) {}
   public void mouseMoved(MouseEvent evt) {}

   public void mouseEntered(MouseEvent evt)
   {
      rembean = false;
      Object obj  =  evt.getSource();
      if (obj instanceof ImageLabel){
  	      if (getComponentCount()>1) rembean = true;
         tBCB  =  (ImageLabel)obj;
      }
   }

   public void mousePressed(MouseEvent evt)
   {
      rembean = false;
      Object obj  =  evt.getSource();
      if (obj instanceof ImageLabel)
      {
  	      if (getComponentCount()>1) rembean = true;
         tBCB  =  (ImageLabel)obj;
      }
   }

   public void mouseReleased(MouseEvent evt)
   {
      Object obj = evt.getSource();
      if (evt.getModifiers() == java.awt.event.InputEvent.BUTTON3_MASK)
      {
         if (obj instanceof ImageLabel) {
            int x = ((Component)obj).getLocation().x;
            int y = ((Component)obj).getLocation().y;
         }
       }else
         mreleased(obj);
   }

	public synchronized void  mreleased(Object obj)
	{
		if (!(obj instanceof ImageLabel))
			return;

		ImageLabel tb  = (ImageLabel)obj;
		for(int i = 0; i<ctrlnum;i++)
		{
			if(tb == imagelabel[i]){
				selected = i;
				break;
			}
		}
		
		if (imagelabel[0]!= tb) 
			imagelabel[0].tmpstate1();
		tBCB = imagelabel[selected];

		if (selected != 0) {
			if  (selected <standCtrl+1){
				Object bean = getBeanObject(beans[selected-1]);
				applet.setBean(bean);
			}else{
				Object bean = getBeanObject(beans[selected-1]);
				applet.setBean(bean);
			}
		}
		else{
			applet.setBean(null);
		}
	}


   public synchronized void setSelectBean()
   {
      if (selected == 0) return;
      imagelabel[selected].tmpstate1();
      selected =  0;
      imagelabel[selected].tmpstate3();
      tBCB  = imagelabel[selected];
      applet.setBean(null);
   }

   public void mouseExited(MouseEvent evt){
      rembean = false;
   }

   public void mouseClicked(MouseEvent evt)
   {
      if(!(evt.getSource() instanceof webide.views.toolbox.ImageLabel))return;
      int ind = evt.getModifiers();
      if (ind == java.awt.event.InputEvent.BUTTON3_MASK)
        return;
         if(evt.getClickCount() == 2)
             addcontrols();
   } //end of mouseClicked.

   public void addcontrols()
   {
      Object bean = getBeanObject(beans[selected-1]);
      webide.Wrapper wrap = applet.pf.add_Controls(bean,false);
      Component cp = (Component)bean;
      Component self = cp;
      Dimension dim  = cp.getPreferredSize();
      applet.pf.addComponent(applet.pf,cp);
      cp.setBounds(getxcoordinates(applet.pf,dim.width),
      getycoordinates(applet.pf,dim.height),dim.width, dim.height);
      cp.setVisible(true);
      applet.pf.setCurrentComponent(wrap);
      applet.setBean(null);
   }

   private int getxcoordinates(PainterForm pf,int width){
       int wid = pf.getSize().width - pf.getInsets().left - pf.getInsets().right;
       if (wid < width) return pf.getInsets().left;
       int xcoordinates = pf.getInsets().left + wid / 2 - width / 2 ;
       return xcoordinates;
   }

   private int getycoordinates(PainterForm pf,int height){
   int hei = pf.getSize().height - pf.getInsets().top - pf.getInsets().bottom;
   if (hei < height) return pf.getInsets().top;
   int ycoordinates = pf.getInsets().top + hei / 2 - height / 2 ;
   return ycoordinates;
   }

   private Object getBeanObject(String beanName)
   {
      Object  obj       = null;
      Class   beanClass = null;
      String  className = beanName;
		try {
		    beanClass = Class.forName(className);
		} catch (Exception ex) {
		    ex.printStackTrace();
		    System.out.println("Warning: get class Exception!");
		    return null;
		}
		try {
		    obj = beanClass.newInstance();
		}catch (Exception ex) {
		    ex.printStackTrace();
    	    return null;
		}catch(Error er) {
		    System.out.println("er = " + er);
			 return null;
		}return obj;
   }   // end of getBeanObject.


    public Object getBean(String className) {
        for (int i = 0; i<beans.length; i++) {
            if (className.equalsIgnoreCase(beans[i])) {
                return getBeanObject(beans[i]);
            }
        }
        return getJarBean(className);
    }

   private Object getJarBean(String name)
   {
      Object objbean = null;
      Object  obj    = beanJars.get(name);
      if (obj == null)
      {
         for (int i=0; i<beanNames.size(); i++) {
            String bName    = (String)beanNames.elementAt(i);
            if (name.equalsIgnoreCase(bName)) {
                name = bName;
                break;
            }
         }
         obj =  beanJars.get(name);
         return null;
      }
      return objbean;
   }
   class SymKey extends java.awt.event.KeyAdapter {
	   public void keyPressed(java.awt.event.KeyEvent event) {
	   }
   }

    public Dimension getPreferredSize()
    {
        return getMinimumSize();
    }

    public Dimension getMinimumSize()
    {
        return new Dimension(100,100);
    }

}

⌨️ 快捷键说明

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