日期:2014-05-20  浏览次数:20663 次

Java Swing里怎样给界面设置一致的字体
swing里默认的菜单字体和按钮字体都是不知名的字体,而且还是粗体,现在我想要宋体14号大小,我有没什么办法可以不用一个个的菜单项、按钮的设置?我在网上找到方法是这样的
Font font = new Font("宋体",Font.PLAIN,15);
UIManager.put("JMenuBar.font", font);
事实证明这个方法是骗人的,根本没有反应

------解决方案--------------------
如下:我本地测试是可以的,Menu和MenuItem都可以变成宋体,如果还是不行,先确认本机是不是有宋体
Java code
import java.awt.Font;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.UIManager;

@SuppressWarnings("serial")
public class FontTestFrame extends JFrame {
    
    public FontTestFrame()
    {
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JMenuBar menubar = new JMenuBar();
        JMenu m = new JMenu("文件");
        m.add(new JMenuItem("打开"));
        menubar.add(m);
        this.setJMenuBar(menubar);
        this.add(new JButton("测试 "));
        this.pack();
        this.setVisible(true);
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Font font = new Font("宋体",Font.PLAIN,15);
        UIManager.put("Button.font", font); 
        UIManager.put("Menu.font", font);
        UIManager.put("MenuItem.font", font);
        new FontTestFrame();
    }

}