绘制一个看起来像JLabel的JButton(或至少没有按钮边缘?)


问题内容

我有一个JButton,出于各种原因,我想充当按钮,但看起来却像JLabel。实际上,它不一定必须是JLabel,我只是不希望显示凸起的按钮边缘。

是否有一种简单的方法可以关闭JButton的“按钮外观”,但保留所有按钮功能?

我可以构建某种组合的子类超级按钮,将其委托给jlabel进行显示,但我真的希望有类似的东西button.lookLikeAButton(false)


问题答案:

您将需要执行以下操作:

        setFocusPainted(false);
        setMargin(new Insets(0, 0, 0, 0));
        setContentAreaFilled(false);
        setBorderPainted(false);
        setOpaque(false);

setFocusPainted(false)如果希望它实际绘制焦点,则可能要排除(例如Windows外观上的虚线边框)。

我在需要“仅图标”按钮的情况下使用了上面的代码。