我尝试为JButton使用自定义图像,除了周围有一个白框之外,它运行良好。我不知道如何解决这个问题,并希望得到一些帮助。 (我使用新的ImageButton(“Quit”,“src / button.png”,128,64)创建按钮。按钮不可调整大小,图像文件为256X128)
按钮类:
public class ImageButton extends JButton {
Image image;
ImageObserver imageObserver;
public ImageButton(String text, String filename, int width, int height) {
super(text, new ImageIcon(filename));
setSize(width, height);
setHorizontalTextPosition(JButton.CENTER);
setVerticalTextPosition(JButton.CENTER);
}
}
使用getInsets覆盖的图片:
答案 0 :(得分:1)
这很可能是因为ImageButton
中有非零插入。尝试覆盖getInsets()
:
@Override
public Insets getInsets() {
return new Insets(0, 0, 0, 0);
}
答案 1 :(得分:0)
请使用paintComponent()
绘制自定义图片以代替默认JButton
。此外,如果您要在JPanel
上绘画,请将JPanel.print()
图片用于JPanel
。
答案 2 :(得分:0)
好的,安德鲁在这方面给了我帮助。他向我指出了this链接,事实证明我只需要禁用边框和内容区域。谢谢安德鲁!
如果您不想关注此链接,请访问更多信息:
你应该摆脱的主要问题是边框应该是空的,如button.setBorderPainted(false);
button.setBorder(null);
,你也应该设置内容区域不被绘制:button.setContentAreaFilled(false);
这是制作自己的要点自定义按钮!