1

Javaアプレットのinit関数には次の行があります。

try {
  this.font = Font.createFont(
    Font.TRUETYPE_FONT,
    new File("fonts/myfont.ttf")
  ).deriveFont(24f);
  GraphicsEnvironment.getLocalGraphicsEnvironment().registerFont(font);
} catch(Exception ex){
  System.out.println(ex);
}

appletviewerでアプレットを開くと、フォントが期待どおりに読み込まれます。しかし、WebブラウザでHTMLページを開くと、Javaコンソールで次のエラーが発生します。

java.security.AccessControlException:アクセスが拒否されました(java.io.FilePermission fonts / myfont.ttf read)

デフォルトのフォントが読み込まれます。

(どうやって)それを修正できますか?

4

1 に答える 1

3

アプレットを使用してローカル ファイルにアクセスすることはできません。これは仕様によるものです。

フォントファイルをファイル内に埋め込むことができます(そしてそうすべきです).jar、などを使用Class.getResourceAsStreamしてそれにアクセスします(正確に返されるタイプであるFont.createFontを取るオーバーロードがあります)。InputStreamClass.getResourceAsStream

于 2010-10-09T17:34:18.600 に答える