【问题标题】:Swing Button Look and Feel Based On Size?摆动按钮的外观和感觉基于大小?
【发布时间】:2014-05-26 00:20:36
【问题描述】:

我已经做了一个JButton:

JButton button = new JButton("Button");

然后将其添加到 JPanel:

panel.add(button, BorderLayout.CENTER);

按钮的照片:

我注意到了 2 种不同类型的 JButton:

我喜欢标题为“OK”的按钮,有什么方法可以将其设置为按钮的首选样式?或者如果不能做到这一点,有没有办法制作一个固定高度的面板,并将其添加到另一个面板的中心?

谢谢。

【问题讨论】:

    标签: java swing jbutton


    【解决方案1】:

    覆盖getPreferredSize() 方法,但我从不建议您使用它。仅在custom painting in AWT and Swing 的情况下才需要。

    JButton btn = new JButton(){
        @Override
        public Dimension getPreferredSize(){
            return new Dimension(40, 40);
        }
    };
    

    【讨论】:

    • 当用任意大小代替 UI 代理的首选大小时,请注意这种pitfall
    【解决方案2】:
    1. 您可以只设置按钮的边距,让布局管理器为您确定 的首选尺寸。

      button.setMargin(new Insets(0, 30, 0, 30));
                          // top, left, bottom, right
      
    2. 确保您添加按钮的容器有一个布局管理器,该管理器尊重其组件的首选大小。请参阅 here 以了解哪些布局将遵守和不遵守首选尺寸

    【讨论】:

      【解决方案3】:

      使用符合按钮 UI 委托计算的首选大小的布局。在这个example 中,每个按钮都添加到具有FlowLayout 的面板中;按钮保持其首选大小。相比之下,这个example 将按钮添加到GridLayout;调整封闭容器的大小以查看效果。引用了一个有用的指南here

      【讨论】:

        【解决方案4】:

        这不是一种风格。您必须定义JButton 的大小。

        JButton btn = new JButton(String.valueOf(i));
        btn.setPreferredSize(new Dimension(40, 40));
        

        【讨论】:

        猜你喜欢
        • 2015-07-07
        • 2023-04-03
        • 2011-09-07
        • 1970-01-01
        • 1970-01-01
        • 2012-07-18
        • 1970-01-01
        • 2017-08-20
        • 2012-08-27
        相关资源
        最近更新 更多