Java 6中的本机Windows LookAndFeel似乎错误地调整了某些字体的大小.
测试程序:
import java.awt.*; import java.awt.event.KeyEvent; import javax.swing.*; public class Test { public static void main(String[] arg) throws Exception { SwingUtilities.invokeLater(new Runnable() { public void run() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { e.printStackTrace(); } final JMenuBar mb = new JMenuBar(); final JMenu file = new JMenu("File"); file.setMnemonic(KeyEvent.VK_F); mb.add(file); final JToolBar toolbar = new JToolBar(); final JButton button = new JButton("Button"); toolbar.add(button); final JLabel label = new JLabel("Basic Colors"); final JPanel panel = new JPanel(new BorderLayout()); panel.add(toolbar,BorderLayout.PAGE_START); panel.add(label,BorderLayout.CENTER); final JFrame frame = new JFrame(); frame.setJMenuBar(mb); frame.add(panel); frame.setTitle("Test"); frame.setSize(400,200); frame.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }); } }
输出与Vista上的本机Windows应用程序进行比较:
虽然测试应用程序菜单栏中的文本大小正确,但文本的其余部分小于旁边的本机应用程序.放大后,您可以看到测试应用程序JLabel中的文本比本机应用程序短1px: