41

私の JavaFx アプリケーションでは、文全体で 1 つまたは 2 つの単語を太字で表示する必要があります。現在、文はJavaFxラベルとしてレンダリングされていますが、コンポーネントをアップグレードすると、「サンプル」という単語を太字で表示できるようにテキストを設定することもできません。

String s = "This is a <b>Sample</b> sentence"
Label label = new Label(s);

出力

これは例文です

JavaFx Text もこれを許可しません。テキストの一部を太字にするコンポーネントはありますか?

JavaFx WebView が、ウィンドウ内に多数の小さな文をレンダリングするのに適しているかどうかはわかりません。

4

4 に答える 4

64

TextFlowJavaFX8からコンテナを利用することが可能です。Textその後、その中に異なるスタイルのノードを簡単に追加できます。

TextFlow flow = new TextFlow();

Text text1=new Text("Some Text");
text1.setStyle("-fx-font-weight: bold");

Text text2=new Text("Some Text");
text2.setStyle("-fx-font-weight: regular");

flow.getChildren().addAll(text1, text2);

TextFlow コンテナは、コンテンツの Text ノードを自動的にラップします。

ここに画像の説明を入力

于 2014-04-03T12:39:19.147 に答える
11

更新: JavaFX 8は、リッチテキストの新しいコントロールを提供します:TextFlow


残念ながら、2.2にはそのような機能はありませんが、次のリリースに含まれる可能性があります。

今のところ、次のアプローチを試してみることができます。

  1. Label複数のTextコンポーネントを含むHBox
  2. WebView
  3. いくつかのテキストコンポーネントが描画されたキャンバス
于 2012-09-09T19:42:18.640 に答える