怎么让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无法改变大小

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

发布了25 篇原创文章 · 获赞 5 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/scc95599/article/details/101082574
今日推荐