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

📄 imgbutton.java

📁 黑白棋123 黑白棋456 大学毕业设计 做很好
💻 JAVA
字号:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class ImgButton extends Button
{
	public static final int HOT = 1;
	public static final int COLD = 0;
	public static final int DOWN = 2;
	public static final int DISABLE = 3;
		
	private boolean self_draw ;
	private int state;
	private Image m_cold,m_hot,m_down ,m_disable;
		
	public ImgButton(String str)
	{ 
		self_draw = false;
		setLabel(str);
		state = COLD;
		this.enableEvents(AWTEvent.MOUSE_EVENT_MASK);
		this.enableEvents(AWTEvent.MOUSE_MOTION_EVENT_MASK);
	}
		
	public void setImage(Image cold ,Image hot, Image down,Image disable)	
	{
		if ( cold == null || hot == null || down == null || disable == null) return ;
		MediaTracker mt = new MediaTracker(this);
		mt.addImage(cold,0);
		mt.addImage(hot,1);
		mt.addImage(down,2);
		mt.addImage(disable,3);
		try
		{
			mt.waitForID(0);
			mt.waitForID(1);
			mt.waitForID(2);
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
			
		m_cold = cold;
		m_hot = hot;
		m_down = down;
		m_disable = disable;	
		self_draw = true;
	}
	public boolean isSelfDraw()
	{
		return self_draw;
	}
	public Image [] getImage()
	{
		if ( self_draw )
			return null;
		else
		{
			Image [] img = new Image[4];
			img[0] = m_cold;
			img[1] = m_hot;
			img[2] = m_down;
			img[3] = m_disable;
			return img;
		}
	}
	public int getState()
	{
		return state;
	}
	public void setState(int s)
	{
		state = s;
		if ( s == DISABLE ) setEnable(false);
		repaint();
	}
	public Dimension getPreferredSize()
	{
		return new Dimension(m_cold.getWidth(this),m_cold.getHeight(this));
	}

	public void setEnable(boolean enable)
	{
		if ( enable )
			state = COLD;
		else
			state = DISABLE;
		repaint();
		super.setEnabled(enable);
	}
		
	public void update(Graphics g)
	{
		paint(g);
	}
			
	public void paintAll(Graphics g)
	{		
		paint(g);
	}
		
	public void repaint()
	{
		Graphics g = this.getGraphics();
		paint(g);
	}
		
	public void paint(Graphics g)
	{
		if ( self_draw)
		{
			Image img = null ;
			switch(state)
			{
			case COLD:
				img = m_cold;
				break;
			case HOT:
				img = m_hot;
				break;
			case DOWN:
				img = m_down;
				break;
			case DISABLE:
				img = m_disable;
				break;
			default:
				return;
			}
			g.drawImage(img,
						0,0,this.getBounds().width,this.getBounds().height,
						0,0,this.getBounds().width,this.getBounds().height,
						this);
		}
		else super.paint(g);
	}
		
	public void processMouseEvent(MouseEvent e)
	{
		if (state != DISABLE)
			switch(e.getID())
			{
			case MouseEvent.MOUSE_EXITED:	
				if (self_draw)
				{
					state = COLD;
					repaint();
				}
				break;
			case MouseEvent.MOUSE_ENTERED:
				if (self_draw)
				{
					state = HOT;
					repaint();
				}
				break;
			case MouseEvent.MOUSE_PRESSED:
				if (self_draw)
				{
					state = DOWN;
					repaint();
				}
				break;
			case MouseEvent.MOUSE_RELEASED:
				if (self_draw)
				{
					if (e.getX()<0 || e.getX() > getSize().width || 
						e.getY()<0 || e.getY() > getSize().height)
						state = COLD;
					else
						state = HOT;
					System.out.println(e.getX());
					repaint();
				}
				break;
			default:
				break;
			}
		super.processMouseEvent(e);
	}

	public void processMouseMotionEvent(MouseEvent e)
	{
		if(e.getID() == MouseEvent.MOUSE_MOVED)
		{
			if (self_draw && state != HOT && state != DISABLE)
			{
				state = HOT;
				repaint();
			}
		}
		super.processMouseMotionEvent(e);
	}
}

⌨️ 快捷键说明

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