鼠标的移入移出效果
2006-03-24 20:36 Jeff 阅读(860) 评论(0) 编辑 收藏 举报继承JButton,使用borderFactory类,当鼠标移入、移出、被点击时有不同的外观。
import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.awt.*;
/**
* JButton类按钮的一种扩展,当鼠标移入、移出、被点击时有不同的外观
*/
public class ZButton extends JButton
{
private Border borderOut;
private Border borderIn;
private Border borderPressed;
public ZButton()
{
init();
}
/**初始化*/
private void init()
{
borderOut = BorderFactory.createEmptyBorder(); borderIn=BorderFactory.createTitledBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED,Color.white,Color.white, new Color(148, 145, 140),new Color(103, 101, 98)),"鼠标进入",TitledBorder.CENTER,TitledBorder.BELOW_TOP);
borderPressed=BorderFactory.createTitledBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED,Color.white,Color.white,new Color(148, 145, 140),new Color(103, 101, 98)),"鼠标摁下",TitledBorder.CENTER,TitledBorder.BELOW_TOP);
this.setBorder( borderOut );
this.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseEntered(MouseEvent e) {
thisButton_mouseEntered(e);
}
public void mouseExited(MouseEvent e) {
thisButton_mouseExited(e);
}
public void mousePressed(MouseEvent e) {
thisButton_mousePressed(e);
}
public void mouseReleased(MouseEvent e) {
thisButton_mouseReleased(e);
}
});
}
/**鼠标移入时的外观*/
void thisButton_mouseEntered(MouseEvent e){
if( this.isEnabled() )
this.setBorder( borderIn );
}
/**鼠标移出时的外观*/
void thisButton_mouseExited(MouseEvent e){
this.setBorder( borderOut );
}
/**鼠标被点击时的外观*/
void thisButton_mousePressed(MouseEvent e){
if( this.isEnabled())
this.setBorder( borderPressed );
}
/**鼠标被释放时的外观*/
void thisButton_mouseReleased(MouseEvent e)
{
if( (this.getBounds().contains(e.getX(), e.getY())) && this.isEnabled() )
this.setBorder( borderIn );
else
this.setBorder( borderOut );
}
}
ZButton继承了JButton,可以直接使用ZButton,下面是测试程序,一定要把ZButton的源文件和测试程序放在同一个目录,否则须设置环境变量.import javax.swing.border.*;
import java.awt.event.*;
import java.awt.*;
/**
* JButton类按钮的一种扩展,当鼠标移入、移出、被点击时有不同的外观
*/
public class ZButton extends JButton
{
private Border borderOut;
private Border borderIn;
private Border borderPressed;
public ZButton()
{
init();
}
/**初始化*/
private void init()
{
borderOut = BorderFactory.createEmptyBorder(); borderIn=BorderFactory.createTitledBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED,Color.white,Color.white, new Color(148, 145, 140),new Color(103, 101, 98)),"鼠标进入",TitledBorder.CENTER,TitledBorder.BELOW_TOP);
borderPressed=BorderFactory.createTitledBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED,Color.white,Color.white,new Color(148, 145, 140),new Color(103, 101, 98)),"鼠标摁下",TitledBorder.CENTER,TitledBorder.BELOW_TOP);
this.setBorder( borderOut );
this.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseEntered(MouseEvent e) {
thisButton_mouseEntered(e);
}
public void mouseExited(MouseEvent e) {
thisButton_mouseExited(e);
}
public void mousePressed(MouseEvent e) {
thisButton_mousePressed(e);
}
public void mouseReleased(MouseEvent e) {
thisButton_mouseReleased(e);
}
});
}
/**鼠标移入时的外观*/
void thisButton_mouseEntered(MouseEvent e){
if( this.isEnabled() )
this.setBorder( borderIn );
}
/**鼠标移出时的外观*/
void thisButton_mouseExited(MouseEvent e){
this.setBorder( borderOut );
}
/**鼠标被点击时的外观*/
void thisButton_mousePressed(MouseEvent e){
if( this.isEnabled())
this.setBorder( borderPressed );
}
/**鼠标被释放时的外观*/
void thisButton_mouseReleased(MouseEvent e)
{
if( (this.getBounds().contains(e.getX(), e.getY())) && this.isEnabled() )
this.setBorder( borderIn );
else
this.setBorder( borderOut );
}
}
import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.awt.*;
public class Test{
public Test(){
JFrame f= new JFrame();
Container contentPane=f.getContentPane();
ZButton a=new ZButton();
contentPane.add(a);
f.setTitle("just a test");
f.setSize(new Dimension(200,80));
f.setVisible(true);
}
public static void main(String []args){
Test q=new Test();
}
}
import javax.swing.border.*;
import java.awt.event.*;
import java.awt.*;
public class Test{
public Test(){
JFrame f= new JFrame();
Container contentPane=f.getContentPane();
ZButton a=new ZButton();
contentPane.add(a);
f.setTitle("just a test");
f.setSize(new Dimension(200,80));
f.setVisible(true);
}
public static void main(String []args){
Test q=new Test();
}
}