2016-11-10 7 views
0

私はJavaFXを使用して自分の音楽ドキュメントのビットマッププレビューを作成しています。JavaFX内のテキスト境界を取得する

特定の点では、ペイントプロセス内で、特定の文字列の寸法を知る必要があります。

件までは、今、私は次のように使用しています

bounds = TextBuilder.create().text(string).font(m_Font).build().getLayoutBounds(); 

しかし、日食は、これは減価償却されていることを私に知らせます。 boundsオブジェクトは空である(すべてゼロに設定されている)ので、値下がりします。

ここで、1行の文字列の幅と高さを取得する方法を教えてください。

このような表示には、画面コントロールにはありません。がありますのでご注意ください。すべてがメモリ内に生成され、pngビットマップに「ダンプ」されます。

私はネット上で掃除をしており、答えが見つかりませんでした(または完全に見逃しました)。

エキスパートのヘルプがありますか?

+1

'getLayoutBounds()'は非推奨ではなく、 'TextBuilder'です。他に何を使うべきかの提案は見つけられませんが、 'Text'オブジェクトを直接作成し、それをさまざまなsetterのsetFont()などと呼び出すことは可能です。 – Michael

答えて

1

私のコメントで述べたように、getLayoutBounds()は廃止されておらず、完全に有効です。それは廃止されたばかりのビルダーです。

​​

出力:

15.9609375, 25.91015625 
15.9609375, 51.01171875 

15.9609375, 25.91015625 
15.9609375, 51.01171875 

0.0, 0.0 
26.6015625, 85.01953125 

私はあなたのフォントことを仮説を立てます、私はビルダーを使用して、一見正しい出力を生成し、次のテストアプリケーションを作成し、直接オブジェクトを作成している、と述べた

をねじ込みしていますが、サイズがゼロまたはその他のエラーに設定されている可能性があります。

+0

あなたの疑惑は十分に確立されています。 – Simon

関連する問題