Skip to Main Content

Japanese

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Windows上のJavaFXで私用領域文字を表示したい

user12308171Feb 13 2015 — edited Feb 13 2015

JavaFX初心者です。

Label、TextFieldにserif文字列として私用領域文字が混在した文字列を表示したい。

色々試してみましたが、思い通りの表示とはなりませんでした。

下記抜粋のCSSとJavaFXソースでは、私用領域文字は表示されますが、それ以外の文字が

MS UIGochicで表示されます。

CSS

@font-face {

  font-family:EUDC;

  src:url(file:///E:/work/hoge.TTF);

}

@font-face {

  font-family:EUDC;

  unicode-range:'U+E000-F8FF';

  src:url(file:///E:/work/EUDC26.tte);

}

.label {

  -fx-font-family:EUDC;

  -fx-font-size: 36pt;

}

test_javafx

public class Main extends Application {

  @Override

    public void start(Stage stage) {

  FlowPane root = new FlowPane();

  String constStr = "\u3042\u845B\uE001\uE002\uE003\uF8FE";

        Scene scene = new Scene(root, 400, 200);

        scene.getStylesheets().add("Hello/application.css");

        stage.setScene(scene);

        Label label = new Label(constStr);

        TextField txField = new TextField(constStr);

        TextField txField2 = new TextField(constStr);

        root.getChildren().addAll(label,txField,txField2);

        stage.show();

    }

  public static void main(String[] args) {

  launch(args);

  }

}

HTMLであれば、CSSの@font-faceの記述で、複数フォントリソースが、仮想単一リソース

と見做されると認識しています。

残念ながらJavaFXのCSSParserはそのような解釈を行ってくれないようです。

それならば、CSSに個々のフォントフェースとして、@font-faceを記述し、-fx-font-familyで、

各々のFontfaceを列記したいのですが、CSSリファレンスの制限事項に記載されている通り

先頭に記載した分だけが読み取られるようです。

serif文字列として私用領域文字混在文字列を表現する方法は無いのでしょうか?

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Mar 13 2015
Added on Feb 13 2015
0 comments
1,898 views