JButton文本具有不同的CUSTOM字体

时间:2014-01-10 16:55:06

标签: java swing jbutton

现在,我知道,在JButton文本中可以实现不同的字体系列。 如下所示

JButton button = new JButton("<html><font face=Arial>Hello </font><font face=Verdana>World</font></html>");

看起来像这样。 Arial的“你好”和Verdana的“世界”。

enter image description here

但是,如果我想要一个单词来使用Font.createFont()方法创建的字体,该怎么办?我想,这样的事情会起作用。

Font myFont = createMyFont();
JButton button = new JButton("<html><font face=MyFont>Hello </font>World</html>");

这个问题的重要性在于我正在创建一个多语言软件,它在一个JButton中有两种字体。

所以,我希望我的JButton是这样的:

enter image description here

但是,就像这样:

enter image description here

1 个答案:

答案 0 :(得分:2)

注册自定义字体:

GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment()
ge.registerFont(myFont);

之后,提供文件名,例如:

      URL fontUrl;
        try {
            fontUrl = new URL("http://www.webpagepublicity.com/" +
                    "free-fonts/a/Airacobra%20Condensed.ttf"); // dummy font 

            Font myFont = Font.createFont(Font.TRUETYPE_FONT, fontUrl.openStream());
            myFont = myFont.deriveFont(Font.PLAIN,20);
            GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
            ge.registerFont(myFont);


            button.setText("<html><font face='Airacobra Condensed'>Hello </font>World</html>");

        } catch (MalformedURLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } catch (FontFormatException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

通过右键单击字体文件,选择属性 - &gt;,可以在Windows上获取文件名。细节,那里是标题。示例:FontAwesome Regular。

enter image description here