?? imgbutton.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 + -