【Java开源代码栏目提醒】:网学会员为广大网友收集整理了,activeComponent.java,希望对大家有所帮助!
package javazoom.jlGui.skin;
import java.awt.*;
import java.awt.event.*;
//activeComponent is used to manage two state graphical components.
public class activeComponent extends Canvas
{
private Image releasedImage;
private Image pressedImage;
private long actionMask;
private boolean pressed = false;
private int mouseX, mouseY;
private int button;
private ActionListener actionListener;
private String actionCommand;
/**
* Contructor that create the active Component with 2 images.
*/
public activeComponent(Image releasedImage, Image pressedImage, long theMask)
{
this.releasedImage = releasedImage;
this.pressedImage = pressedImage;
this.actionMask = theMask;
setSize(releasedImage.getWidth(null), releasedImage.getHeight(null) );
enableEvents( theMask );
}
public void paint( Graphics g )
{
g.setColor(Color.black);
int width = getSize().width, height = getSize().height;
if (pressed == false) g.drawImage( releasedImage, 0, 0, width, height, this );
else g.drawImage( pressedImage, 0, 0, width, height, this );
}
public Dimension getPreferredSize()
{
return getSize();
}
public void processEvent( AWTEvent e )
{
button = ((MouseEvent)e).getModifiers();
if ( e.getID() == MouseEvent.MOUSE_PRESSED )
{
pressed = true;
repaint();
}
else if ( e.getID() == MouseEvent.MOUSE_RELEASED )
{
pressed = false;
repaint();
fireEvent();
}
else if ( e.getID() == MouseEvent.MOUSE_DRAGGED )
{
mouseX = ((MouseEvent)e).getX();
mouseY = ((MouseEvent)e).getY();
pressed = true;
repaint();
fireEvent();
}
super.processEvent(e);
}
public void setActionCommand( String actionCommand )
{
this.actionCommand = actionCommand;
}
public void addActionListener(ActionListener l)
{
actionListener = AWTEventMulticaster.add(actionListener, l);
}
public void removeActionListener(ActionListener l)
{
actionListener = AWTEventMulticaster.remove(actionListener, l);
}
public void fireEvent()
{
if (actionListener != null)
{
ActionEvent event = new ActionEvent( this, ActionEvent.ACTION_PERFORMED, actionCommand );
actionListener.actionPerformed( event );
}
}
public final int getMouseX()
{return mouseX;}
public final int getMouseY()
{return mouseY;}
public final boolean isMousePressed()
{return pressed;};
public final int getMouseButton()
{return button;};
}