0

我尝试为 JButton 使用自定义图像,它运行良好,除了它周围有一个白框。我不知道如何解决这个问题,并希望得到一些帮助。(我使用 new 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 覆盖的图片:

图片的

4

3 回答 3

1

这很可能是因为您在ImageButton. 尝试覆盖getInsets()

@Override
public Insets getInsets() {
   return new Insets(0, 0, 0, 0);
}
于 2012-11-18T18:20:28.533 回答
0

请使用paintComponent()来绘制自定义图像来代替默认值JButton。此外,如果您要在 a 上绘画JPanel,则将JPanel.print()图像用于JPanel.

于 2012-11-18T18:28:23.873 回答
0

好的,安德鲁帮我解决了这个问题。他指给我这个链接,结果我只需要禁用边框和内容区域。谢谢安德鲁!

如果您不想点击链接,请提供更多信息:您应该从中得到的主要内容是边框应该像这样为空:button.setBorderPainted(false); button.setBorder(null);并且您还应该将内容区域设置为不被绘制:button.setContentAreaFilled(false);这是要点制作自己的自定义按钮!

于 2012-11-19T15:43:51.213 回答