gpt4 book ai didi

java - 为什么我们在 Web 浏览器和 java swing 中无法获得相同的特定字体显示

转载 作者:行者123 更新时间:2023-12-02 04:32:56 28 4
gpt4 key购买 nike

假设一个字体 Kalpurush.ttf (你可能会找到这个字体 here )。由于它是阿萨姆字体,可能没有安装在每个人的计算机上,所以,我已将这种字体嵌入到我的网站中。它在任何浏览器中都显示良好(除了 android webview。我对 android 没有任何头痛)。事实上,我从来没有发现任何阿萨姆字体这么好。

现在我已经在 J​​ava Swing 应用程序中尝试了相同的字体。我写了这个类:

public class AssameseFont {
public AssameseFont(){}

public Font Assamese(){
File file = new File("kalpurush.ttf");
Font as = null;
try{
FileInputStream input = new FileInputStream(file);
as = Font.createFont(Font.TRUETYPE_FONT, file);
as = as.deriveFont(Font.PLAIN, 18);
GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont(as);

}
catch(FontFormatException | IOException e){
JOptionPane.showMessageDialog(null, ""+e);
}
return as;
}
}

我经常使用 setFont() 方法在我的组件中调用它。

但是我的一些文本没有按应有的方式显示。为什么会发生这种情况?是字体问题吗?或者我在我的java代码中做错了什么?

最佳答案

As it is an Assamese Font and may not have installed in everyone's computer, so, I've embedded this font in my website. ..

File file = new File("kalpurush.ttf");

该文件将指向用户计算机上的一个(不存在的)文件。

必须通过 URL 访问字体。

<小时/>

另请参阅 Setting custom font

<小时/>

在链接线程上看到的代码,但使用 kalpurush.ttf 字体。

enter image description here

import java.awt.*;
import javax.swing.*;
import java.net.URL;

class DisplayFont {
public static void main(String[] args) throws Exception {
URL fontUrl = new URL("http://assameseonline.com/css/kalpurush.ttf");
Font font = Font.createFont(Font.TRUETYPE_FONT, fontUrl.openStream());
font = font.deriveFont(Font.PLAIN,20);
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
ge.registerFont(font);

JLabel l = new JLabel(
"The quick brown fox jumps over the lazy dog. 0123456789");
l.setFont(font);
JOptionPane.showMessageDialog(null, l);
}
}

关于java - 为什么我们在 Web 浏览器和 java swing 中无法获得相同的特定字体显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31222901/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com