为什么我们不能在web浏览器和JavaSwing中获得相同的特定字体显示
假设字体为Kalpurush.ttf(您可能会找到这种字体)。由于它是一种阿萨姆字体,可能并没有安装在每个人的计算机上,所以,我将这种字体嵌入到我的网站中。它在任何浏览器中都显示良好(除了android webview。我对android没有任何头痛)。事实上,我从来没有发现任何阿萨姆字体这么好 现在我已经在JavaSwing应用程序中尝试了相同的字体。我写了这门课:为什么我们不能在web浏览器和JavaSwing中获得相同的特定字体显示,java,swing,unicode,fonts,Java,Swing,Unicode,Fonts,假设字体为Kalpurush.ttf(您可能会找到这种字体)。由于它是一种阿萨姆字体,可能并没有安装在每个人的计算机上,所以,我将这种字体嵌入到我的网站中。它在任何浏览器中都显示良好(除了android webview。我对android没有任何头痛)。事实上,我从来没有发现任何阿萨姆字体这么好 现在我已经在JavaSwing应用程序中尝试了相同的字体。我写了这门课: public class AssameseFont { public AssameseFont(){} public Font
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代码有什么错误吗
因为它是一种阿萨姆字体,可能没有安装在每个人的电脑上,所以,我把这种字体嵌入了我的网站
File file = new File("kalpurush.ttf");
该文件将指向用户机器上的一个(不存在的)文件
必须通过URL
访问字体
另见
链接线程上看到的代码,但使用
kalpurush.ttf
字体
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中,它的显示方式类似于পৰাঞ্জল代码>。它只在java中发生。我不知道为什么。@PranjalCholadhara如果您正在使用MacOSX,请参见以下内容: