怎么让Swing的JButton不显示边框以及不显示选中后的虚线

我提供一个工具类直接调用就好了

package com.saoft.fastdemo.ui.shared;

import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;

public class ButtonUtil {

    public final static String PLUS = "plus";

    /**
     * 设置按钮为图标类型
     * @param btn
     * @param imgType 图标样式或者说用哪个图标
     */
    public static void setImg(JButton btn,String imgType){
        try {
            BufferedImage read = ImageIO.read(ButtonUtil.class.getResource("/icon/"+imgType+".png"));
            BufferedImage read2 = ImageIO.read(ButtonUtil.class.getResource("/icon/"+imgType+"@hover.png"));
            btn.setIcon(new ImageIcon(read));//设置图标
            btn.setRolloverIcon(new ImageIcon(read2));//设置鼠标放上的图标
        } catch (IOException e) {
            e.printStackTrace();
        }
        btn.setMargin(new Insets(0,0,0,0));//设置边距
        btn.setBorderPainted(false);//不绘制边框
        btn.setFocusPainted(false);//选中后不绘制边框
        btn.setContentAreaFilled(false);//不绘制按钮区域
        String text = btn.getText();
        btn.setToolTipText(text);//把原有文字设置为鼠标放上后才有效果
        btn.setText("");//不显示文字
    }
}

效果

注意:图标在ps中绘制的时候应该预留边距,导出的时候应该使用实际大小,swing无法改变大小

 

最后加的几个图标,瞬间逼格就上来了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值