JButton利润率。 nimbus plaf时不受尊重

时间:2011-11-27 18:56:52

标签: java swing jbutton nimbus uidefaults

安装了雨云外观时,不会尊重margin的属性JButton
。 我需要一些“小”按钮,但是nimbus强制按钮文本周围的空间很大,所以我只得到“非常大”的按钮。
我在nimbus defaults page中发现有一个名为:

的属性
Button.contentMargins

预设大值。
我试着用以下代码覆盖它:

UIManager.getDefaults().put("Button.contentMargins", new InsetsUIResource(0,0,0,0));
在设置了灵气的外观之后,在main

但没有任何反应,按钮文本周围的空白区域仍然很大。 有什么想法吗?

2 个答案:

答案 0 :(得分:3)

Resizing a Component中所述,更改JComponent.sizeVariant的值也可能有效。

答案 1 :(得分:2)

基于线程How to change the background color for JPanels with Nimbus Look and Feel?

可以更改并为Nimbus Defaults中的某个内容分配一个值,

但你确定你需要这个输出到GUI,没什么好看的

enter image description here

v.s。基本的JButton与Nimbus L& F

enter image description here

来自代码

import java.awt.*;
import javax.swing.*;
import javax.swing.plaf.InsetsUIResource;

public class NimbusJPanelBackGround {

    public NimbusJPanelBackGround() {
        JButton btn = new JButton("  Whatever  ");
        JButton btn1 = new JButton("  Whatever  ");
        JPanel p = new JPanel();
        p.add(btn);
        p.add(btn1);
        JFrame f = new JFrame();
        f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        f.add(p, BorderLayout.CENTER);
        f.setSize(200, 100);
        f.setLocation(150, 150);
        f.setVisible(true);
    }

    public static void main(String[] args) {

        try {
            for (UIManager.LookAndFeelInfo laf : UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(laf.getName())) {
                    UIManager.setLookAndFeel(laf.getClassName());
                    UIManager.getLookAndFeelDefaults().put("Panel.background", Color.white);
                    UIManager.getLookAndFeelDefaults().put("Button.contentMargins", new InsetsUIResource(0,0,0,0));
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                NimbusJPanelBackGround nimbusJPanelBackGround = new NimbusJPanelBackGround();
            }
        });
    }
}

之前+1为有趣的问题