我正在写一个日历面板在应用程序中使用。要显示我使用JButtons的日子。由于我不希望按钮占用大量空间,因此它们没有插入。插入不被尊重
这里是如何看在我的GTK +:
所有按钮都显示非常干净。
现在这里是东西怎么看时,我切换到金属LAF:
简单地说,这是不能接受的。
当我通过将setMargins(new insets(0,0,0,0))
放置在自定义按钮的构造函数中来设置插图时,所有的作品都看起来像我希望的样子。
现在,这些按钮不影响以负面方式唯一的按钮,我不觉得我应该,所以我需要一个更清洁的解决方案手动设置这个比比皆是。 我试过通过UIManager.put("Button.margin", new Insets(0, 0, 0, 0));
设置默认按钮边距,但这并没有影响任何东西。 这使我疯狂,我不知道这是如何影响其他lafs如Aqua或Windows laf,但我担心最糟糕。
编辑: 只是测试它在Windows XP和猜测:
EDIT2:
的main()创建并显示该帧。它有几个组件,由initComponents()
创建。 initComponents()
由Netbeans创建,最后有一个pack()
。
public class MainForm
extends javax.swing.JFrame
{
public MainForm()
{
String os = System.getProperty("os.name").toLowerCase();
String laf = null;
if (os.contains("win"))
{
laf = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
}
else if (os.contains("nix") || os.contains("nux"))
{
laf = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
}
else if (os.contains("mac"))
{
laf = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
}
try
{
UIManager.put("Button.margin", new Insets(0, 0, 0, 0));
UIManager.setLookAndFeel(laf);
SwingUtilities.updateComponentTreeUI(this);
System.out.println(UIManager.getLookAndFeel().toString());
}
catch (Exception ex)
{
System.out.println(ex.toString());
}
initComponents();
}
}
使用UIManager设置Button.margin在XP上使用JDK6_7可以正常工作。发布你的[SSCCE](http://www.sscce.org)来证明问题。 – camickr
这不是一个SSCCE。 – camickr
我删除了我的帖子 – mKorbel