2

JavaFx のテキストエリアには、css で割り当てられた背景色を設定できます。

.text-area .content {
-fx-background-color: blue ;
}

スタイル宣言内の tornadoFx でこれを行うにはどうすればよいですか?

  override val root = gridpane {

    orderTextArea = textarea {
        isEditable = false
        prefWidth = 900.0
        prefHeight = 700.0
        isWrapText = true
        //textProperty().bind(viewModel.orderText)
        style {
            textFill = Color.YELLOW
            **//backgroundcolor**
         }

    }
4

1 に答える 1

2

ここには 2 つのオプションがあります。

  1. スタイルシートを作成し、そこに正しいセレクターを記述します
  2. サブノードを見つけてスタイルを直接適用する

コントロールがそのサブノードを実際にいつインスタンス化するかについての保証がないため、いいえ 2 はお勧めしません。TornadoFX には、No 1 を実行する 2 つの方法があります。

タイプ セーフなスタイルシートを作成し、それへの参照をアプリ クラスに追加できます。スタイルシートは次のようになります。

class Styles : Stylesheet() {
    init {
        textArea {
            content {
                backgroundColor += Color.BLUE
            }
        }
    }
}

前述したように、TornadoFX には別のオプションがあり、それはインライン スタイルシートを作成することです。これはインライン スタイルではありませんが、定義したノードにのみ適用される完全なスタイルシートです (もちろん、サブノードにも適用されます)。

textarea {
    prefWidth = 900.0
    prefHeight = 700.0
    stylesheet {
        Stylesheet.content {
            backgroundColor += Color.BLUE
        }
    }
}

スタイルシートで定義された CSS クラスを参照する必要があることに注意してください。

外部のタイプ セーフなスタイルシートを作成することは、常に最良の選択肢です。

于 2018-01-13T20:36:30.070 に答える