Java自定义图片按钮

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

Java自定义图片按钮_第1张图片

            图1 JButton设置背景图效果

二、具体方法

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

Java自定义图片按钮_第2张图片

                                    图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)