📄 multiimageborder.java
字号:
} /** * 得到应该吸附到的窗口 * @return */ public void getSnapObject() { me.getBounds(myBound); //先查询EQ的窗口 Component c1 = config.getEqWindow(); if (c1 != null && c1 != me && c1.isShowing()) { c1.getBounds(otherBound); int dis = Util.getDistance(myBound, otherBound); if (dis > 0 && dis < Config.SNAP) { int dir = getDirection(dis); if (dir != -1) { SnapObject obj = new SnapObject(dir, c1); changeLocation(obj);// return obj; } else { config.getComponentMap().remove(config.getComponentName(me)); } } else { config.getComponentMap().remove(config.getComponentName(me)); } } me.getBounds(myBound); c1 = config.getLrcWindow(); if (c1 != null && c1 != me && c1.isShowing()) { c1.getBounds(otherBound); int dis = Util.getDistance(myBound, otherBound); if (dis > 0 && dis < Config.SNAP) { int dir = getDirection(dis); if (dir != -1) { SnapObject obj = new SnapObject(dir, c1); changeLocation(obj);// return obj; } else { config.getComponentMap().remove(config.getComponentName(me)); } } else { config.getComponentMap().remove(config.getComponentName(me)); } } me.getBounds(myBound); c1 = config.getPlWindow(); if (c1 != null && c1 != me && c1.isShowing()) { c1.getBounds(otherBound); int dis = Util.getDistance(myBound, otherBound); if (dis > 0 && dis < Config.SNAP) { int dir = getDirection(dis); if (dir != -1) { SnapObject obj = new SnapObject(dir, c1); changeLocation(obj);// return obj; } else { config.getComponentMap().remove(config.getComponentName(me)); } } else { config.getComponentMap().remove(config.getComponentName(me)); } } me.getBounds(myBound); c1 = config.getTopParent(); if (c1 != null && c1 != me && c1.isShowing()) { c1.getBounds(otherBound); int dis = Util.getDistance(myBound, otherBound); if (dis > 0 && dis < Config.SNAP) { int dir = getDirection(dis); if (dir != -1) { SnapObject obj = new SnapObject(dir, c1); changeLocation(obj);// return obj; } else { config.getComponentMap().remove(config.getComponentName(me)); } } else { config.getComponentMap().remove(config.getComponentName(me)); } }// return null; } public void mouseReleased(MouseEvent e) { isMoving = false; if (state == MOVE) { //如果是主窗口就免了 if (me == config.getTopParent()) { return; } getSnapObject(); config.updateComponentSnap(); } } public void mouseEntered(MouseEvent e) { if (!isMoving) { calculateState(e.getPoint()); } } public void mouseExited(MouseEvent e) { if (!isMoving) { state = 0; } } public void mouseDragged(MouseEvent e) { Point p = e.getPoint(); switch (state) { case MOVE: doMOVE(p); break; case LEFT: doLEFT(p); break; case RIGHT: doRIGHT(p); break; case TOP: doTOP(p); break; case BOTTOM: doBOTTOM(p); break; case LEFT_TOP: doLEFT_TOP(p); break; case LEFT_BOTTOM: doLEFT_BOTTOM(p); break; case RIGHT_TOP: doRIGHT_TOP(p); break; case RIGHT_BOTTOM: doRIGHT_BOTTOM(p); break; } } public void mouseMoved(MouseEvent e) { calculateState(e.getPoint()); } private void doMOVE(Point p) { int addX = p.x - startX; int addY = p.y - startY; Point old = me.getLocation(); me.setLocation(old.x + addX, old.y + addY); } private void doLEFT(Point p) { int addX = startX - p.x; Point old = me.getLocation(); Dimension oldSize = me.getSize(); if (me.getWidth() <= me.getMinimumSize().width && addX < 0) { addX = 0; } me.setSize(oldSize.width + addX, oldSize.height); me.setLocation(old.x - addX, old.y); } private void doRIGHT(Point p) { int addX = p.x - startX; Dimension oldSize = me.getSize(); if (me.getWidth() <= me.getMinimumSize().width && addX < 0) { addX = 0; } else { startX = p.x; } me.setSize(oldSize.width + addX, oldSize.height); startY = p.y; } private void doTOP(Point p) { int addY = startY - p.y; Dimension oldSize = me.getSize(); Point old = me.getLocation(); if (me.getHeight() <= me.getMinimumSize().height && addY < 0) { addY = 0; } me.setSize(oldSize.width, oldSize.height + addY); me.setLocation(old.x, old.y - addY); } private void doBOTTOM(Point p) { int addY = p.y - startY; Dimension oldSize = me.getSize(); if (me.getHeight() <= me.getMinimumSize().height && addY < 0) { addY = 0; } else { startY = p.y; } me.setSize(oldSize.width, oldSize.height + addY); startX = p.x; } private void doLEFT_TOP(Point p) { int addX = startX - p.x; int addY = startY - p.y; Dimension oldSize = me.getSize(); Point old = me.getLocation(); if (me.getWidth() <= me.getMinimumSize().width && addX < 0) { addX = 0; } if (me.getHeight() <= me.getMinimumSize().height && addY < 0) { addY = 0; } me.setSize(oldSize.width + addX, oldSize.height + addY); me.setLocation(old.x - addX, old.y - addY); } private void doLEFT_BOTTOM(Point p) { int addX = startX - p.x; int addY = p.y - startY; Dimension oldSize = me.getSize(); Point old = me.getLocation(); if (me.getWidth() <= me.getMinimumSize().width && addX < 0) { addX = 0; } if (me.getHeight() <= me.getMinimumSize().height && addY < 0) { addY = 0; } else { startY = p.y; } me.setSize(oldSize.width + addX, oldSize.height + addY); me.setLocation(old.x - addX, old.y); } private void doRIGHT_TOP(Point p) { int addX = p.x - startX; int addY = startY - p.y; Dimension oldSize = me.getSize(); Point old = me.getLocation(); if (me.getWidth() <= me.getMinimumSize().width && addX < 0) { addX = 0; } else { startX = p.x; } if (me.getHeight() <= me.getMinimumSize().height && addY < 0) { addY = 0; } me.setSize(oldSize.width + addX, oldSize.height + addY); me.setLocation(old.x, old.y - addY); } private void doRIGHT_BOTTOM(Point p) { int addX = p.x - startX; int addY = p.y - startY; Dimension oldSize = me.getSize(); if (me.getWidth() <= me.getMinimumSize().width && addX < 0) { addX = 0; } else { startX = p.x; } if (me.getHeight() <= me.getMinimumSize().height && addY < 0) { addY = 0; } else { startY = p.y; } me.setSize(oldSize.width + addX, oldSize.height + addY); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -