みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

フォントの使用方法

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


※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ゴシックは使用できる

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

投稿日時 - 2004-04-28 17:54:01

QNo.843352

すぐに回答ほしいです

質問者が選んだベストアンサー

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

たぶん、そのアプレットを実行している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、他のプラットホームで果たして明朝体で
表示されるかはわからない)

投稿日時 - 2004-04-30 05:51:07

お礼

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

投稿日時 - 2004-04-30 17:23:18

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問