-2

我将我的 JButton 设置为以下属性:-borderPainted 为 false-contentAreaFilled 为 false-边框为空-不透明为 false

点击按钮后,背景变黑或变黑,但是为什么,..有什么建议!?(谢谢)

4

1 回答 1

4

如果您想创建一个透明按钮,您只需要setContentAreaFilled(false)不要调用setOpaque,请参阅javadoc(请注意,javadoc 中的最后一行建议因外观而异,。):

设置 contentAreaFilled 属性。如果为 true,则按钮将绘制内容区域。如果您希望有一个透明按钮,例如仅图标按钮,那么您应该将其设置为 false。 不要调用 setOpaque(false)。contentAreaFilled 属性的默认值为 true。

该函数可能会导致组件的 opaque 属性发生变化。

调用此函数的确切行为因组件和 L&F 的不同而异。

如果您“只想要”文本(没有边框),您可以调用setBorder(null).


例子:

...没有边框和背景(也没有“按下”背景)。在统一/ubuntu 的默认外观和感觉上进行了测试,例如MetalLookAndFeel.

public static void main(String... args) {

    JButton button = new JButton(new AbstractAction("Button") {
        @Override
        public void actionPerformed(ActionEvent arg0) {
            // Printout to verify that the button was actually pressed
            // since no visual output is shown... :)
            System.out.println("Clicked");
        }
    });
    
    button.setContentAreaFilled(false);
    button.setBorder(null);
    
    JFrame frame = new JFrame("Test");
    frame.setLayout(new FlowLayout());
    frame.add(button);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(400, 300);
    frame.setVisible(true);
}
于 2012-07-02T22:48:03.807 回答