我正在寫一個日曆面板在應用程序中使用。要顯示我使用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