Java自定义图片按钮

Posted YQS_Love

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java自定义图片按钮相关的知识,希望对你有一定的参考价值。

一、问题描述
Java中常用的按钮有两种,一种谁AWT里面的Button,另一是Swing里的JButton。但是它们的样子实在是长得很抱歉。Java也提供了一些方法,可以设置按钮的背景图片,不过效果的话(图1),还不如不设置。接下来,我将我知道的制作一个漂亮的按钮的方法分享给大家。

            图1 JButton设置背景图效果

二、具体方法

1、在Java里,JLabel其实也是一个组件,也是可以充当JButton的,用它来设置一张背景图,绝不会出现JButton那样的效果,方法如下:

                                    图2 JLabel实现Button效果
ImageIcon icon = new ImageIcon("image\\\\start1.png");    
JLabel startGame = new JLabel(icon,SwingConstants.CENTER);

说明:这样的做法有个缺点,就是你的图片你必须包含菜单所要表达的意思,否则它仅仅是张图片而已,不过你也可以在JLabel的左边或者是右边添加文字描述。对于组件的监听事件,同JButton的一模一样。方法如下:

JLabel() 
          //创建无图像并且其标题为空字符串的 JLabel。 
JLabel(Icon image) 
         // 创建具有指定图像的 JLabel 实例。 
JLabel(Icon image, int horizontalAlignment) 
        //  创建具有指定图像和水平对齐方式的 JLabel 实例。 
JLabel(String text) 
        //  创建具有指定文本的 JLabel 实例。 
JLabel(String text, Icon icon, int horizontalAlignment) 
        //  创建具有指定文本、图像和水平对齐方式的 JLabel 实例。 
JLabel(String text, int horizontalAlignment) 
         // 创建具有指定文本和水平对齐方式的 JLabel 实例。 

2、有人说,我不想用JLabel,就是要用JButton。好的,没关系,就喜欢有个性的人。同样也可以做到,缺点同JLabel的一样,方法如下:

ImageIcon icon = new ImageIcon("image\\\\start1.png");
JButton startGame = new JButton();
//设定透明效果
startGame.setOpaque(false);  
//去掉背景点击效果
startGame.setContentAreaFilled(false);  
//去掉聚焦线
startGame.setFocusPainted(false);
//去掉边框
startGame.setBorder(null); 
//设置显示的图片
startGame.setIcon(icon);

以上是关于Java自定义图片按钮的主要内容,如果未能解决你的问题,请参考以下文章

UIButton图片文字控件位置自定义(图片居右文字居左图片居中文字居中图片居左文字消失等)

java根据图片和文字生成自定义图片

java创建透明背景的PNG图片加自定义文字水印

Android实现自定义带文字和图片的Button

滑动滑块的自定义上一个和下一个按钮

WPF自定义button按钮控件