プロが教える店舗&オフィスのセキュリティ対策術

次のプログラムでフォントを変更できるはずなのですが・・・。


※import文省略

public class StringDisplay extends Applet{
 public void paint(Graphics g) {
  g.drawString("文字が書けました",100, 50);
  g.setFont(new Font("MS 明朝", Font.PLAIN, 25));
  g.drawString("文字が書けました",100,100);
  g.setFont(new Font("MS ゴシック", Font.BOLD, 30));
  g.drawString("文字が書けました",100,150);
 }
}

--実行結果--
・MS明朝及びMSゴシックにならない
・「文字が書けました」は3つとも出ている
・3つとも初期設定フォントの「dialog」らしい
・文字の大きさは変更されている
・3つ目に太字は適用されている
・他のアプリケーション(キューブペイントなど)で文字を書くときにはMS明朝・MSゴシックは使用できる

こんな感じなのですが、なぜフォントが変更できないのかが分かりません。
全く同じプログラムではありませんが、以前はちゃんと変更できました。
どなたかお分かりになる方はいませんでしょうか?

A 回答 (1件)

>なぜフォントが変更できないのかが分かりません。



たぶん、そのアプレットを実行しているJava VMのせいではないかな?

たとえば、
・「IE(Internet Explorer)のMicrosoft VM」上で実行させたアプレットではうまくいかないないけれど、

・IEにsunの最新Javaプラグインをインストールして、
そのプラグイン上で実行させたアプレットではうまくいくかもしれない。

・またはappletviewer上でアプレットを実行させたら、うまくいくかもしれない。

・または、アプリケーションとして実行させたら、うまくいくかもしれない。
(アプリケーションとして実行させる場合は以下のコードを追加)
public static void main(String[] args){
Frame f = new Frame();
f.setLayout(new BorderLayout());
f.add(new StringDisplay(), "Center");
f.setSize(new Dimension(400, 300));
f.show();
}

・あと、(「IEのMicrosoft VM」上でアプレットを実行している場合、)
ひょっとしたら、
フォント名を("MS 明朝"ではなく)"Serif"にすれば、
明朝体っぽいフォントで表示されるかもしれない。
(でもたとえそうだとしても、他のVM、他のプラットホームで果たして明朝体で
表示されるかはわからない)
    • good
    • 0
この回答へのお礼

appletviewerで実行してみると、うまくいきました。
また、参考書でフレーム上にいろいろなフォントを表示させるというのを以前にしていて、そのときはやはりできなかったのですが、これはやっぱりできないのかなあと思いながらも実行してみるとできるようになっていました。本当にありがとうございました。

お礼日時:2004/04/30 17:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!