【问题标题】:Background color and GTK Look and Feel背景颜色和 GTK 外观
【发布时间】:2012-02-05 01:06:21
【问题描述】:

我在设置 JButton 的背景颜色时遇到问题。 例如,当我做button.setBackground(Color.ORANGE) 时我会得到这个

但是,当我禁用 GTK 外观和感觉时,一切正常。 另一种设置背景的方法? 谢谢。

【问题讨论】:

    标签: java swing jbutton look-and-feel setbackground


    【解决方案1】:

    GTK 外观定义了它自己的视觉呈现按钮的方式,因此当您使用“button.setBackground(Color.ORANGE)”时,它只会更改按钮的底层背景,然后 GTK 外观会自己绘制(灰色)背景顶部按钮的表示。

    如果您想要一个简单的橙色按钮,您可以将按钮的 UI 更改为您自己的,例如:

    public static void main ( String[] args )
    {
        JButton orangeButton = new JButton ( "X" );
        orangeButton.setUI ( new MyButtonUI ());
    }
    
    private static class MyButtonUI extends BasicButtonUI
    {
        public void paint ( Graphics g, JComponent c )
        {
            JButton myButton = ( JButton ) c;
            ButtonModel buttonModel = myButton.getModel ();
    
            if ( buttonModel.isPressed () || buttonModel.isSelected () )
            {
                g.setColor ( Color.GRAY );
            }
            else
            {
                g.setColor ( Color.ORANGE );
            }
            g.fillRect ( 0, 0, c.getWidth (), c.getHeight () );
    
            super.paint ( g, c );
        }
    }
    

    此代码示例将创建一个按钮,按下时为灰色,未按下时为橙色。 当然,您可以随意设置绘画的样式并更改按钮视图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-14
      • 1970-01-01
      • 1970-01-01
      • 2016-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多