我提供一个工具类直接调用就好了
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无法改变大小
最后加的几个图标,瞬间逼格就上来了