这是JTabbedPane在Java 1.6中呈现的方式:
使用Java 1.7(或1.8 EA)时,请看截图的标签底部:
我尝试过,没有任何成功(或影响)系统属性 -Dcom.apple.macos.smallTabs = true 和 -Dcom.apple.smallTabs = true 。
感谢任何解决方案或黑客行为。
答案 0 :(得分:3)
运行此example,我无法使用Java 7重现Mac OS X 10.9.2上显示的效果。我怀疑您忽略了pack()
封闭的Window
,但是您可以将您的代码与显示的代码进行比较。
答案 1 :(得分:0)
发现了这个问题。在SwingUtilities.invokeLater
块中构建UI之前,我有一个名为的代码:
import java.awt.Font;
import java.util.ArrayList;
import java.util.Enumeration;
import javax.swing.UIManager;
...
Font f = new Font(Font.DIALOG, Font.PLAIN, 12);
ArrayList<String> excludes = new ArrayList<String>();
Enumeration itr = UIManager.getDefaults().keys();
while(itr.hasMoreElements()){
Object o = itr.nextElement();
if(o instanceof String) {
String key = (String) o;
Object value = UIManager.get (key);
if ((value instanceof javax.swing.plaf.FontUIResource)
&& (!excludes.contains(key))){
UIManager.put (key, f);
}
}
}
我希望所有UI元素在我的应用程序中都有统一的Font。当我评论这个块时,UI渲染就像在Java 6中一样出现。似乎是后来Java版本中的一个错误。