62,615
社区成员
发帖
与我相关
我的任务
分享
class MyLabel extends JLabel {
private int state;
private ImageIcon icoExited = null;
private ImageIcon icoEntered = null;
private ImageIcon icoPressed = null;
public MyLabel() {
super();
init();
}
public MyLabel(ImageIcon ico) {
super(ico);
init();
}
/**
* 构造方法
* @param icoExited 平时的图标
* @param icoEntered 进入后的图标
* @param icoPressed 按下后的图标
*/
public MyLabel(ImageIcon icoExited, ImageIcon icoEntered, ImageIcon icoPressed) {
super(icoExited);
this.icoExited = icoExited;
this.icoEntered = icoEntered;
this.icoPressed = icoPressed;
init();
}
private void init() {
addMouseListener(new MouseAdapter(){
@Override
public void mouseEntered(MouseEvent e) {
state = 1;
setIcon(icoEntered);
}
@Override
public void mouseExited(MouseEvent e) {
state = 0;
setIcon(icoExited);
}
@Override
public void mousePressed(MouseEvent e) {
state = 2;
setIcon(icoPressed);
}
@Override
public void mouseReleased(MouseEvent e) {
if (state == 2) {
state = 1;
setIcon(icoEntered);
}
}
});
}
public void setIcoExited(ImageIcon icoExited) {
this.icoExited = icoExited;
}
public ImageIcon getIcoExited() {
return icoExited;
}
public void setIcoEntered(ImageIcon icoEntered) {
this.icoEntered = icoEntered;
}
public ImageIcon getIcoEntered() {
return icoEntered;
}
public void setIcoPressed(ImageIcon icoPressed) {
this.icoPressed = icoPressed;
}
public ImageIcon getIcoPressed() {
return icoPressed;
}
}