安装了雨云外观时,不会尊重margin
的属性JButton
。
。
我需要一些“小”按钮,但是nimbus强制按钮文本周围的空间很大,所以我只得到“非常大”的按钮。
我在nimbus defaults page中发现有一个名为:
Button.contentMargins
预设大值。
我试着用以下代码覆盖它:
UIManager.getDefaults().put("Button.contentMargins", new InsetsUIResource(0,0,0,0));
在设置了灵气的外观之后,在main
中。
但没有任何反应,按钮文本周围的空白区域仍然很大。 有什么想法吗?
答案 0 :(得分:3)
如Resizing a Component中所述,更改JComponent.sizeVariant
的值也可能有效。
答案 1 :(得分:2)
可以更改并为Nimbus Defaults
中的某个内容分配一个值,
但你确定你需要这个输出到GUI,没什么好看的
v.s。基本的JButton与Nimbus L& F
来自代码
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为有趣的问题