帆软报表设计器源代码。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

57 lines
1.5 KiB

package com.fr.design.data.datapane;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.BorderFactory;
import com.fr.design.constants.UIConstants;
import com.fr.design.gui.ilable.UILabel;
import javax.swing.border.Border;
public class FlashLookLabelMouseAdapter extends MouseAdapter {
boolean mouseEntered = false;
boolean buttonPressed = false;
private UILabel label;
private ReleaseAction releaseAction;
private static final Border NORMAL_BORDER = BorderFactory.createLineBorder(UIConstants.NORMAL_BACKGROUND);
private static final Border ENTERED_BORDER = BorderFactory.createLineBorder(java.awt.Color.GRAY);
public FlashLookLabelMouseAdapter(UILabel label, ReleaseAction releaseAction) {
this.label = label;
label.setBorder(NORMAL_BORDER);
this.releaseAction = releaseAction;
}
public void mouseEntered(MouseEvent e) { //当鼠标进入时候调用.
mouseEntered = true;
if(!buttonPressed){
label.setBackground(java.awt.Color.WHITE);
label.setOpaque(true);
label.setBorder(ENTERED_BORDER);
}
}
public void mouseExited(MouseEvent e) {
mouseEntered = false;
label.setOpaque(false);
label.setBorder(NORMAL_BORDER);
}
public void mousePressed(MouseEvent e){
buttonPressed = true;
label.setBackground(java.awt.Color.lightGray);
}
public void mouseReleased(MouseEvent e){
buttonPressed = false;
if(mouseEntered){
label.setBackground(java.awt.Color.WHITE);
this.releaseAction.releaseAction();
}
}
public static interface ReleaseAction {
public void releaseAction();
}
}