为什么我们不能在web浏览器和JavaSwing中获得相同的特定字体显示

为什么我们不能在web浏览器和JavaSwing中获得相同的特定字体显示,java,swing,unicode,fonts,Java,Swing,Unicode,Fonts,假设字体为Kalpurush.ttf(您可能会找到这种字体)。由于它是一种阿萨姆字体,可能并没有安装在每个人的计算机上,所以,我将这种字体嵌入到我的网站中。它在任何浏览器中都显示良好(除了android webview。我对android没有任何头痛)。事实上,我从来没有发现任何阿萨姆字体这么好 现在我已经在JavaSwing应用程序中尝试了相同的字体。我写了这门课: public class AssameseFont { public AssameseFont(){} public Font

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

现在我已经在JavaSwing应用程序中尝试了相同的字体。我写了这门课:

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,请参见以下内容: