- PR -

任意の文字列を指定したフォントスタイル、フォントサイズで描画した場合の文字列幅の取得

1
投稿者投稿内容
しん
常連さん
会議室デビュー日: 2004/04/04
投稿数: 48
投稿日時: 2007-12-19 23:00
任意の文字列(下記サンプルプログラムでは"・・・")を指定したフォントスタイル、
フォントサイズで描画した場合の文字列の幅を知りたくて下記のようなサンプルを
書いてみました。サンプルでは文字列"・・・"がフォントスタイルBold、
フォントサイズ80 で描画された場合の文字列幅を取得するように書いたつもりです。
ここで疑問なのですがderiveFont()メソッドの引数では
フォントスタイル、フォントサイズを指定してますが
フォントの種類(MSゴシックとかMS明朝)も指定して文字列の幅を取得する
やり方はあるのでしょうか?
よろしくお願いいたします。

コード:
public class testfont extends Component {

	public testfont() {
		String strFont = "・・・";


		Font font = Font.decode(strFont);
		
		//フォントスタイルBold、フォントサイズ80 を指定
		Font newfont = font.deriveFont(1,80);
				
		FontMetrics fo = getFontMetrics(newfont);

		System.out.println(fo.stringWidth(strFont));
	}


	public static void main(String[] args) {
		testfont test = new testfont();
	}
}

nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-12-20 11:03
new Font(String, int, int)ではだめなのですか?
ranco
大ベテラン
会議室デビュー日: 2007/11/02
投稿数: 112
投稿日時: 2007-12-20 11:08
deriveFont()を呼ぶ必要はありません。strFontを正しく書いてください。
しん
常連さん
会議室デビュー日: 2004/04/04
投稿数: 48
投稿日時: 2007-12-22 21:37
ご回答ありがとうございます。
new Font(String, int, int)を当初考えたのですが
Stringに該当する部分はフォントフェース名またはフォントファミリ名
を指定することになっているのでこのコンストラクタから作成した
フォントオブジェクトからどのように任意の文字列の文字列幅を
取得するのか迷った次第であります。
1

スキルアップ/キャリアアップ(JOB@IT)