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

📄 fpoint.java

📁 一个简单的visio程序。
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package webide.form;

import java.awt.*;
import java.awt.event.*;
import webide.form.PainterForm;


public class FPoint {

    public FPoint(FormPanel formPanel) {
           this.formPanel = formPanel;
    }

    public void addFocusPoint(Container con) {
           setMouseEvent(con);
    } //end of addFocusPoint.

    public static void setPointLocation(Component comp) {
           focusComponent = comp;
           Rectangle rec
           = getRectangle(focusComponent,nPoint.getParent());
           setLocation(rec);
    }//end of setLocation

    public static Rectangle getRectangle(Component comp,Component parent) {

            Rectangle rec = comp.getBounds();
            int x = rec.x;
            int y = rec.y;
            int w = rec.width;
            int h = rec.height;
            while (comp != null && comp != parent)  {
                   comp = comp.getParent();
                   if (comp != null) {
                       x = x + comp.getLocation().x;
                       y = y + comp.getLocation().y;
                   }
            }
            return new Rectangle(x,y,w,h);
    }

    private void addFPoint(Container container) {

        nwPoint = new FocusPoint();
        nePoint = new FocusPoint();
        swPoint = new FocusPoint();
        sePoint = new FocusPoint();

        nPoint  = new FocusPoint();
        ePoint  = new FocusPoint();
        sPoint  = new FocusPoint();
        wPoint  = new FocusPoint();

        addComponnet(container);
        setSize(7,7);
        setVisible(false);
    }//end of addFPoint.

    public void setSize(int width,int height) {

        nwPoint.setSize(width,height);
        nePoint.setSize(width,height);
        swPoint.setSize(width,height);
        sePoint.setSize(width,height);

        nPoint.setSize(width,height);
        ePoint.setSize(width,height);
        sPoint.setSize(width,height);
        wPoint.setSize(width,height);
    }//end of setSize.

    public void addComponnet(Container container) {
        container.add(nwPoint);
        container.add(nePoint);
        container.add(swPoint);
        container.add(sePoint);

        container.add(nPoint);
        container.add(ePoint);
        container.add(sPoint);
        container.add(wPoint);
    }

    public static void setVisible(boolean v) {

        nwPoint.setVisible(v);
        nePoint.setVisible(v);
        swPoint.setVisible(v);
        sePoint.setVisible(v);

        nPoint.setVisible(v);
        ePoint.setVisible(v);
        sPoint.setVisible(v);
        wPoint.setVisible(v);
    }//end of setVisible.

    public static boolean isVisible() {
      if  (nwPoint.isVisible() && nePoint.isVisible()
        && swPoint.isVisible() && sePoint.isVisible()
        && nPoint.isVisible()  && ePoint.isVisible()
        && sPoint.isVisible()  && wPoint.isVisible()) {
          return true;
       }
       return false;
    }//end of isVisible.

    private boolean isFocusPoint(Object obj) {
            if (obj instanceof FocusPoint) {
                return true;
            }
            return false;
    }//end of isFocusPoint.

    private boolean isPForm() {
        if (focusComponent != null
        && focusComponent instanceof webide.form.PainterForm) {
            return true;
        }
        return false;
    }//end of isForm.

    private boolean canDrag(Object obj) {
            if (obj == ePoint || obj == sePoint || obj == sPoint) {
                return true;
             }
             return false;
    }//end of isThreePoint.

    //-------------set cursor of mouseMove-----------------------
    private void setMoveCursor(Object obj) {
            setResizeCursor(obj);
    }//end of setMOveFocusPoint.

    //----set Cursor of MousePressed and MouseDragged  -------------------
    private void setPressCursor(Object obj) {
        setResizeCursor(obj);
    }//end of setPressCursor.

    private void setReleaseCursor(Object obj) {
        setMoveCursor(obj);
    }//end of setReleaseCursor.
    
    private void setResizeCursor(Object obj) {
        if (obj == nwPoint ) {
            cursor = nwResizeCursor;
        } else if (obj == nePoint ) {
            cursor = neResizeCursor;
        } else if (obj == swPoint ) {
            cursor = swResizeCursor;
        } else if (obj == sePoint ) {
            cursor = seResizeCursor;
        } else if (obj == nPoint )  {
            cursor = nResizeCursor;
        } else if (obj == ePoint )   {
            cursor = eResizeCursor;
        } else if (obj == sPoint )    {
            cursor = sResizeCursor;
        } else if (obj == wPoint )  {
            cursor = wResizeCursor;
        } else {
           cursor = defaultCursor;
        }
        ((Panel)obj).setCursor(cursor);
    }//end of setResizeCursor.

    class FocusPoint extends Panel {

        public void update(Graphics g) {
            paint(g);
        }

        public void paint(Graphics g) {
            g.setColor(Color.black);
            g.fillRect(0,0,7,7);

            g.setColor(Color.white);
            g.fillRect(1,1,5,5);
        }

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

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

        public Dimension getMaximumSize() {
              return getMinimumSize();
        }
     }//end of FocusPoint.



    //----- set mouseEvent ---------------------------------------
    private void addMouseAdapter(MouseAdapter adapter) {

        nwPoint.addMouseListener(adapter);
        nePoint.addMouseListener(adapter);
        swPoint.addMouseListener(adapter);
        sePoint.addMouseListener(adapter);

        nPoint.addMouseListener(adapter);
        ePoint.addMouseListener(adapter);
        sPoint.addMouseListener(adapter);
        wPoint.addMouseListener(adapter);
    }//end of addMouseAdapter.

    private void addMouseMotionAdapter(MouseMotionAdapter adapter) {

        nwPoint.addMouseMotionListener(adapter);
        nePoint.addMouseMotionListener(adapter);
        swPoint.addMouseMotionListener(adapter);
        sePoint.addMouseMotionListener(adapter);

        nPoint.addMouseMotionListener(adapter);
        ePoint.addMouseMotionListener(adapter);
        sPoint.addMouseMotionListener(adapter);
        wPoint.addMouseMotionListener(adapter);
    }//end of addEvent.


    public void setMouseEvent(Container container) {
        //add Component to Container and set Propteries
        addFPoint(container);
        //set FocusPoint Event.
    	SymMouse aSymMouse = new SymMouse();
    	addMouseAdapter(aSymMouse);

		SymMouseMotion aSymMouseMotion = new SymMouseMotion();
		addMouseMotionAdapter(aSymMouseMotion);
     }//end of setMouseEvent.

     //------ MouseAdapter ------------------------------------------
     class SymMouseMotion extends java.awt.event.MouseMotionAdapter {
		public void mouseMoved(java.awt.event.MouseEvent event) {
			FocusPoint_MouseMove(event);
		}

		public void mouseDragged(java.awt.event.MouseEvent event) {
			FocusPoint_MouseDrag(event);
		}
	}

	void FocusPoint_MouseMove(MouseEvent event) {
	}

	void FocusPoint_MouseDrag(MouseEvent event) { 
        Object  object = event.getSource();
        Component comp = event.getComponent();
        endx = event.getX();
        endy = event.getY();

        int x = endx + comp.getLocation().x;
        int y = endy + comp.getLocation().y;

        if (isFocusPoint(object)) {
            isDrag = true;
            disPatchEvent(event,x,y);
        }
	 }

     class SymMouse extends java.awt.event.MouseAdapter	{
		public void mouseClicked(java.awt.event.MouseEvent event) {
		}
    
    	public void mouseExited(java.awt.event.MouseEvent event) {
    	    FocusPoint_MouseExited(event);
		}

		public void mouseEntered(java.awt.event.MouseEvent event) {
            Object object = event.getSource();

⌨️ 快捷键说明

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