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

📄 rubberbandtest.java

📁 定要上载质量高而定要上载质量高而定要上载质量高而定要上载质量高而定要上载质量高而
💻 JAVA
字号:
/*
 * Created on Aug 29, 2004
 */
package org.flexdock.test.drag;

import java.awt.Color;
import java.awt.Component;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

import org.flexdock.docking.drag.effects.EffectsManager;
import org.flexdock.docking.drag.effects.RubberBand;



/**
 * @author marius
 */
public class RubberBandTest extends JFrame {
	private RubberBand rubberBand;
	private Point offset;
	
	private RubberBandTest() {
		super("Rubber Band Test");
		rubberBand = EffectsManager.getRubberBand();
		setContentPane(createContentPane());
	}
	
	private JPanel createContentPane() {
		JPanel jp = new JPanel();
		JLabel lbl = new JLabel("Drag Me");
		DragListener dl = new DragListener();
		lbl.addMouseListener(dl);
		lbl.addMouseMotionListener(dl);
		lbl.setBackground(Color.gray);
		lbl.setOpaque(true);
		jp.add(lbl);
		return jp;
		
	}
	
	private void startDrag(MouseEvent me) {
		Point p = me.getPoint();
		SwingUtilities.convertPointToScreen(p, (Component)me.getSource());
		Point win = getLocationOnScreen();
		offset = new Point(win.x-p.x, win.y-p.y);
	}
	
	private void processDrag(MouseEvent me) {
		Rectangle r = getBounds();
		r.setLocation(getMousePoint(me));
		rubberBand.paint(r);
	}
	
	private void stopDrag(MouseEvent me) {
		rubberBand.clear();
		setLocation(getMousePoint(me));
		offset = null;
	}
	
	private Point getMousePoint(MouseEvent me) {
		Point p = me.getPoint();
		SwingUtilities.convertPointToScreen(p, (Component)me.getSource());
		p.x += offset.x;
		p.y += offset.y;
		return p;
	}
	
	private class DragListener extends MouseAdapter implements MouseMotionListener {
		public void mouseDragged(MouseEvent me) {
			processDrag(me);
		}
		public void mouseMoved(MouseEvent me) {
			// do nothing
		}
		
		public void mousePressed(MouseEvent me) {
			startDrag(me);
		}
		
		public void mouseReleased(MouseEvent me) {
			stopDrag(me);
		}
	}

	
	public static void main(String[] args) {
		JFrame f = new RubberBandTest();
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setSize(100, 100);
		f.setVisible(true);
	}

}

⌨️ 快捷键说明

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