4

ユーザーが折れ線グラフの記号や線種などを制御できるようにするJavaFXアプリがあります。複数のスタイルシートを作成するのではなく、この機能をJavaコードに組み込みたいと思います。ジュエルシーの以前に投稿された優れた例のおかげで、線のスタイルを動的に変更できます。これは素晴らしいことです。しかし、デフォルトのシンボルスタイルを変更することはできません。

node.setStyleの呼び出しで、.cssステートメントのどれだけをインラインで逐語的に使用できるかは私にはわかりません。つまり、「-fx-*」コマンドはJavaコードから機能することがわかります。しかし、.cssファイルのシンボルは異なる構文で定義されており、Javaのコードにcss行を挿入するだけでは機能しません。

これが私のコードの例です:

StringBuilder styleString = new StringBuilder();    
            // do some stylin'
    switch (getLineStyle.getValue().toString())  {
        case "Line and points":
            styleString.append("-fx-stroke: blue; -fx-stroke-width: 2; ");
            styleString.append(
                    ".chart-symbol {-fx-background-color: blue; -fx-background-radius: 3px;}");
            engChart.setCreateSymbols(true);
            break;

        case "Line only":
             styleString.append("-fx-stroke: blue; -fx-stroke-width: 2; ");
             engChart.setCreateSymbols(false);
            break;

「線と点」の場合、このコードを使用して色と幅を制御できますが、記号を制御する試みは無残に失敗します。私はここから構文を取りました:

http://docs.oracle.com/javafx/2/api/javafx/scene/doc-files/cssref.html#introscenegraph

この種の制御をインラインで行うために使用するより良いリファレンスがあれば、それが何であるかを知っていただければ幸いです。

シンボルをインラインで適切に操作する方法を誰かに教えてもらえますか?ありがとう。

4

1 に答える 1

4

スタイル文字列にスタイルクラス定義を追加することはできません。スタイル クラスは css ファイルでのみ定義できます。したがって、独自の css ファイルを作成してロードし、既存のシンボル スタイルをオーバーライドするか、独自のスタイルを作成します。

JavaFX 2.2のデフォルトのスタイルシートには、次の定義が含まれています。

.chart-line-symbol {
    -fx-background-color: #f9d900, white;
    -fx-background-insets: 0, 2;
    -fx-background-radius: 5px;
    -fx-padding: 5px;
}
.default-color0.chart-line-symbol { -fx-background-color: #f9d900, white; }
.default-color1.chart-line-symbol { -fx-background-color: #a9e200, white; }
.default-color2.chart-line-symbol { -fx-background-color: #22bad9, white; }
.default-color3.chart-line-symbol { -fx-background-color: #0181e2, white; }
.default-color4.chart-line-symbol { -fx-background-color: #2f357f, white; }
.default-color5.chart-line-symbol { -fx-background-color: #860061, white; }
.default-color6.chart-line-symbol { -fx-background-color: #c62b00, white; }
.default-color7.chart-line-symbol { -fx-background-color: #ff5700, white; }

したがって、独自の .chart-line-symbol 定義を提供するか、チャートに新しいスタイル クラスを追加します (例: chart.getStyleClass().add("custom-chart"))。次に、css ファイルでカスタム チャート シンボルを定義します。

.custom-chart .chart-line-symbol {
    -fx-background-color: #f9d900, firebrick;
    -fx-background-radius: 0px;
}

チャート シンボルのカスタム スタイルを実現する方法 にもありますが、実際に使用できない場合を除き、css のみを使用することをお勧めします。

于 2012-09-05T19:11:45.283 に答える