如何获得漂亮的按钮?

时间:2012-11-18 18:11:42

标签: java image swing jbutton imageicon

我尝试为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覆盖的图片:

Picture of the "Quit" button.

3 个答案:

答案 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);这是制作自己的要点自定义按钮!