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

📄 uieffect.java

📁 Athena酒店小组_Athena酒店管理系统
💻 JAVA
字号:
/*
 * UIEffect.java
 *
 * Created on 2006年12月3日, 下午6:00
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package helper;

import java.awt.*;
import java.awt.event.*;

/**
 *
 * @author Virlene Cheng
 */
public class UIEffect
{
    private int oldX,oldY;			    /** 用于保存旧的 x 坐标 */
    private Component component = null;		    /** 用于保存旧的 y 坐标 */
    
    /** 黄金分割 */
    public static final double GOLDEN_SECTION = 0.618;
    
    /** 构造函数 */
    public UIEffect(Component component)
    {
	this.component = component;
    }
    
    /** 获取组件 */
    public Component getComponent()
    {
	return component;
    }
    
    /** 设置组件 */
    public void setComponnet(Component component)
    {
	this.component = component;
    }
    
    /** 使组件可以移动 */
    public void MakeComponentCanMove()
    {
	component.addMouseMotionListener(new MouseMotionAdapter()
	{
	    public void mouseDragged(MouseEvent evt)
	    {
		int newX = evt.getX(), newY = evt.getY();
		int moveX = newX - oldX, moveY = newY - oldY;
		component.setLocation(component.getX() + moveX, component.getY() + moveY);
	    }
	});
	
	component.addMouseListener(new MouseAdapter()
	{
	    public void mousePressed(MouseEvent evt)
	    {
		oldX = evt.getX();
		oldY = evt.getY();
	    }
	});
    }
    
    /** 使组件可以沿 x 轴移动 */
    public void MakeComponentCanMoveX()
    {
	component.addMouseMotionListener(new MouseMotionAdapter()
	{
	    public void mouseDragged(MouseEvent evt)
	    {
		int newX = evt.getX();
		int moveX = newX - oldX;
		component.setLocation(component.getX() + moveX, component.getY());
	    }
	});
	
	component.addMouseListener(new MouseAdapter()
	{
	    public void mousePressed(MouseEvent evt)
	    {
		oldX = evt.getX();
	    }
	});
    }
    
    /** 使组件可以沿 y 轴移动 */
    public void MakeComponentCanMoveY()
    {
	component.addMouseMotionListener(new MouseMotionAdapter()
	{
	    public void mouseDragged(MouseEvent evt)
	    {
		int newY = evt.getY();
		int moveY = newY - oldY;
		component.setLocation(component.getX(), component.getY() + moveY);
	    }
	});
	
	component.addMouseListener(new MouseAdapter()
	{
	    public void mousePressed(MouseEvent evt)
	    {
		oldY = evt.getY();
	    }
	});
    }
    
    /** 使组件位于中间 */
    public void MakeComponentCenter()
    {
	Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
	int posX = (int)(size.width * 0.5 - component.getWidth() * 0.5);
	int posY = (int)(size.height * 0.5 - component.getHeight() * 0.5);
	component.setLocation(posX, posY);
    }
    
    /** 使组件位于最好的位置 */
    public void MakeComponentPerfectPosition()
    {
	Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
	int posX = (int)((size.width - component.getWidth()) * 0.5);
	int posY = (int)((size.height - component.getHeight()) * (1 - GOLDEN_SECTION));
	component.setLocation(posX, posY);
    }
    
    /** 沿 x 轴平均移动窗体 */
    public void moveComponentX(int startPos, int endPos, double step)
    {
	double x = endPos - startPos;
	double newXFloat = startPos;
	int newX = startPos;
	
	while(true)
	{
	    if (x * (newX - endPos) <= 0)
	    {
		try
		{
		    Thread.sleep(1);
		}
		catch (InterruptedException ex)
		{
		    ex.printStackTrace();
		}
		component.setLocation(newX, component.getY());
		
		newXFloat = newXFloat + step;
		newX = (int)newXFloat;
	    }
	    else
	    {
		component.setLocation(endPos, component.getY());
		break;
	    }
	}
    }
    
    /** 沿 y 轴平均移动窗体 */
    public void moveComponentY(int startPos, int endPos, double step)
    {
	double y = endPos - startPos;
	double newYFloat = startPos;
	int newY = startPos;
	
	while(true)
	{
	    if (y * (newY - endPos) <= 0)
	    {
		try
		{
		    Thread.sleep(1);
		}
		catch (InterruptedException ex)
		{
		    ex.printStackTrace();
		}
		component.setLocation(component.getX(), newY);
		
		newYFloat = newYFloat + step;
		newY = (int)newYFloat;
	    }
	    else
	    {
		component.setLocation(component.getX(), endPos);
		break;
	    }
	}
    }
    
    /** 沿 x 轴加速或减速移动窗体 */
    public void moveComponentXWithAcceleration(int startPos, int endPos, double startStep, double endStep, double perStep)
    {
	double x = endPos - startPos;
	double newXFloat = startPos;
	int newX = startPos;
	
	while(true)
	{
	    if (x * (newX - endPos) <= 0)
	    {
		try
		{
		    Thread.sleep(1);
		}
		catch (InterruptedException ex)
		{
		    ex.printStackTrace();
		}
		component.setLocation(newX, component.getY());
		
		newXFloat = newXFloat + startStep;
		newX = (int)newXFloat;
		
		if (perStep * (startStep - endStep) >= 0)
		{
		    startStep = endStep;
		}
		else
		{
		    startStep += perStep;
		}
	    }
	    else
	    {
		component.setLocation(endPos, component.getY());
		break;
	    }
	}
    }
    
    /** 沿 y 轴加速或减速移动窗体 */
    public void moveComponentYWithAcceleration(int startPos, int endPos, double startStep, double endStep, double perStep)
    {
	double y = endPos - startPos;
	double newYFloat = startPos;
	int newY = startPos;
	
	while(true)
	{
	    if (y * (newY - endPos) <= 0)
	    {
		try
		{
		    Thread.sleep(1);
		}
		catch (InterruptedException ex)
		{
		    ex.printStackTrace();
		}
		component.setLocation(component.getX(), newY);
		
		newYFloat = newYFloat + startStep;
		newY = (int)newYFloat;
		
		if (perStep * (startStep - endStep) <= 0)
		{
		    startStep = endStep;
		}
		else
		{
		    startStep += perStep;
		}
	    }
	    else
	    {
		component.setLocation(component.getX(), endPos);
		break;
	    }
	}
    }
    
    
    
    
}

⌨️ 快捷键说明

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