扩展JButton实现自己的图片按钮

简介:

实现效果:

代码:

复制代码
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Insets;

import javax.swing.ImageIcon;
import javax.swing.JButton;

public class Button extends JButton{
    private static final long serialVersionUID = 1218571878182523580L;
    
    public Button(String buttonText){
        // 设置按钮的大小与图片大小一致
        Dimension d = new Dimension(108, 31);
        this.setSize(d);
        this.setMaximumSize(d);
        this.setMinimumSize(d);
        
        // 设置按钮背景图像
        ImageIcon icon1=new ImageIcon(Button.class.getResource("/button/gray.gif"));
        setIcon(icon1);

        // 设置鼠标放置在按钮上时的背景图像
        ImageIcon icon2=new ImageIcon(Button.class.getResource("/button/lightblue.gif"));
        setRolloverIcon(icon2);
        
        // 设置文字相对于按钮图像的位置,水平居中,垂直居中
        this.setHorizontalTextPosition(CENTER);
        this.setVerticalTextPosition(CENTER);

        // 不绘制边框
        setBorderPainted(false);

        // 不绘制焦点
        setFocusPainted(false);

        // 不绘制内容区
        setContentAreaFilled(false);

        // 设置焦点控制
        setFocusable(true);

        // 设置按钮边框与边框内容之间的像素数
        setMargin(new Insets(0, 0, 0, 0));

        // 设置文字
        setText(buttonText);
        
        // 设置文字字体
        Font font=new Font("Arial",Font.BOLD,18);   
        setFont(font); 
        
        // 设置前景色(文字颜色)
        setForeground(Color.white);
    }
}
复制代码

 上文使用到的图片可以从这里下载:

http://pan.baidu.com/s/1c0b3RqC












本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/xiandedanteng/p/3693942.html,如需转载请自行联系原作者



相关文章
|
3月前
|
C++
QT 重写控件(QPushButton为例)实现背景图片的切换和鼠标样式切换
一般在QT开发中,使用setCursor()给控件设置鼠标的样式效果(一般是手型和箭头的切换),一般情况下,这个函数也是起作用的,但是一旦调用了全局QApplication::setOverrideCursor()设置鼠标效果后,在使用setCursor给控件设置鼠标样式就不起效果了,这是QT的机制
75 0
|
8月前
|
前端开发
上传图片组件的悬停显示删除等操作遮罩层
上传图片组件的悬停显示删除等操作遮罩层
|
10月前
|
C++
Vs+Qt 界面添加背景图的两种方式(非常实用)
Vs+Qt 界面添加背景图的两种方式(非常实用)
VC下利用Picture控件实现png图片按钮(鼠标初始、按下、松开、获得焦点四种状态)
VC下利用Picture控件实现png图片按钮(鼠标初始、按下、松开、获得焦点四种状态)
107 0
|
人工智能
在程序中使用自己设计的ICON图标
使用thymeleaf模板引擎,少不了图标,常用的图标库:FontAwesome、glyphicons;那么如何把自己设计的图标引用到自己的程序中去呢?
275 0
在程序中使用自己设计的ICON图标
PS实用技巧:用原始图片制作显示(正常状态)、鼠标悬浮(hover)、鼠标点击(pressed)的方法
PS实用技巧:用原始图片制作显示(正常状态)、鼠标悬浮(hover)、鼠标点击(pressed)的方法
PS实用技巧:用原始图片制作显示(正常状态)、鼠标悬浮(hover)、鼠标点击(pressed)的方法
|
计算机视觉
Qt实用技巧:QWidget中QPushButton成为可点击的图标(实现全透明,不论点击与否都只显示Icon)
Qt实用技巧:QWidget中QPushButton成为可点击的图标(实现全透明,不论点击与否都只显示Icon)
swing实现QQ登录界面1.0( 实现了同一张图片只加载一次)、(以及实现简单的布局面板添加背景图片控件的标签控件和添加一个关闭按钮控件)
swing实现QQ登录界面1.0( 实现了同一张图片只加载一次)、(以及实现简单的布局面板添加背景图片控件的标签控件和添加一个关闭按钮控件)
186 0
swing实现QQ登录界面1.0( 实现了同一张图片只加载一次)、(以及实现简单的布局面板添加背景图片控件的标签控件和添加一个关闭按钮控件)
C#鼠标拖拽,移动图片实例
最近工作需要做一个鼠标可以拖拽移动图片的功能。写了几个基本功能,勉强能用。
402 0
C#鼠标拖拽,移动图片实例