2016-03-29 24 views
0

誰でもjavafxグラフの凡例にテキストをラップするのに手伝ってください。私は円グラフと棒グラフを持っています。すべての伝説は一番下に置かれます。私は次のことを試みたが、それを働かせることができなかった。javafxグラフの凡例のテキストを折り返す方法

for (Node node : pie.lookupAll(".chart-legend")) { 
       if (node instanceof Text) { 
        System.out.println("Text instance"); 
        ((Text) node).setWrappingWidth(380); 
        ((Text) node).setManaged(true); 
       } 
       if (node instanceof Label) { 
        System.out.println("Label instance"); 
        ((Label) node).setWrapText(true); 
        ((Label) node).setManaged(true); 
        ((Label) node).setPrefWidth(380); 
       } 
    } 

EDIT: ハイライト部を参照してください。まだ一部のテキストは表示されません。

enter image description here

答えて

1

私はついにそれを手に入れました。ラベル幅を制御できないため、CSSでテキストを折り返しても機能しませんでした。そのため、次のコードを使用してテキストをプログラムでラップすることができます。

for (Node node : pie.lookupAll(".chart-legend-item")) { 
       if (node instanceof Label) { 
        System.out.println("Label instance"); 
        ((Label) node).setWrapText(true); 
        ((Label) node).setManaged(true); 
        ((Label) node).setPrefWidth(380); 
       } 
    } 
0

あなたはCSSのドキュメントを見ていましたか?それはタイプラベルのだが、前述のように JavaFX CSS Reference

ので、我々としても見hereを持つことができます。 このリンクは、グラフの凡例のセクションに参照のうえれます。 -fx-wrap-textはおそらくトリックを行います。もちろん、自分のCSSファイルをプログラムに書き込んで添付する必要があります...

もっと詳しい例については、JDKs jfxrt.jarを参照して解凍し、デフォルトのCSSファイルであるmodena.cssを探してください。

よろしくお願いいたします。 ダニエル

編集:私は、次の実際結局への影響やアプリケーションを持つように切り取らました:

.chart-legend { 
    -fx-background-color: transparent; 
    -fx-padding: 20px; 
} 

.chart-legend-item-symbol { 
    -fx-background-radius: 0; 
} 

.chart-legend-item { 
    -fx-text-fill: #191970; 
} 

をしかし、それはあなたがあなたのCSSでそれを置く場所、重要です。最初の試みでは、より上にを置き、デフォルトのラベルテキストの色を設定するCSSルールを使用しました。 私はこれを気づいたとき、私はCSSファイルの終わりに置いた:etvóila - それは働いた。

したがって、あなた自身のCSSに合わせて配置してください。

+0

私は '-fx-wrap-text'をCSSで試しました。 '.pie-legend-symbol {-fx-wrap-text:true;}'となります。それは私のために働いていない –

+0

私がドキュメント '理解している限り、' .pie-legend-symbol'は単にグラフィックスノードでなければなりません(そうでなければ命名は誤解を招くかもしれません)。凡例ラベル自体に '.chart-legend-item'を試しましたか? 上記のいずれかのコードを「アイテム」に更新するか、別のCSSファイルを試してみる必要があります。 – dzim

+0

私は1つの相対的な複雑なアプリケーションしか持っていません。私の変更。この古いJavaFX2チュートリアルの行に関する凡例を追加すると、それは私にとってはうまくいきません。http://docs.oracle.com/javafx/2/charts/css-styles.htm - この場合、私は私の側でさらなるテストをせずに、私も少し失われています。申し訳ありません、仲間! – dzim

関連する問題