2016-03-29 21 views
0

Metni bir javafx grafiğinin efsanesinde sarmalama konusunda bana yardımcı olabilecek herhangi biri olabilir. Pasta grafiklerim ve çubuk grafiklerim var. Tüm efsaneler altta yerleştirilir. Aşağıdakileri denedim ama işe yaramadı.Bir javafx grafik efsanesinin metni nasıl sarılır?

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); 
       } 
    } 

DÜZENLEME: vurgulanan bölümünü bakınız. Yine de bazı metinler görünmez.

enter image description here

cevap

1

Sonunda anladım. Css'deki metni sarmalamaya çalışmak etiket genişliği olarak çalışmadığından orada kontrol edilemez. Bu nedenle, metni programlı olarak sarmak için aşağıdaki kod kullanılabilir. -fx-wrap-text 'işlevini denedim.

0

CSS belgelerine bir göz var mı? o tip Etiket var, bahsedildiği gibi JavaFX CSS Reference

, bu yüzden de bir göz here sahip olabilir: Bu bağlantı grafik efsanesi bölümüne refering. -fx-wrap-text muhtemelen işe yarar mı? Tabii ki yazıp programa kendi CSS dosya eklemek ... Daha detaylı Örneğin

, senin JDKs jfxrt.jar bakınız, .zip ve varsayılan CSS dosyasını olduğunu modena.css için bakmak gerekir .

Saygılarımızla. Daniel

Düzenleme: bende şu aslında sonuçta bir etkiyi veya uygulama olması snipped:

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

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

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

Ama CSS'nizde sen nereye yerleştirdiğiniz önemlidir. İlk denememde, varsayılan etiket metni rengini ayarlayan CSS kuralını'un üstüne yerleştirdim. Bunu fark ettiğimde, bunu CSS dosyamın sonuna koydum: et vóila - işe yaradı.

Lütfen ikinci bir görünüme bakın, kendi CSS'nize göre yerleştiriniz.

+0

. .pie-legend-symbol {-fx-wrap-text: true;} '. Benim için çalışmıyor –

+0

".pie-legend-symbol" belgesini anladığım kadarıyla sadece grafik düğümü olmalı (aksi halde adlandırma yanıltıcı olabilir). Lejant etiketinin kendisi için '.chart-legend-item' denediniz mi? Yukarıdaki kodunuzu "item" e güncellemeniz veya ayrı bir CSS dosyası ile denemenizi öneririz ... – dzim

+0

Test etmek için sadece bir tane göreceli karmaşık uygulamam var. benim değişimlerim. Bu eski JavaFX2 öğreticisinden alınan satırlarla ilgili efsaneyi eklediğimde, benim için de işe yaramıyor: http://docs.oracle.com/javafx/2/charts/css-styles.htm - bu durumda ben Kabul etmek ha, benim tarafımda başka testler olmadan, ben de biraz kayboldum. Üzgünüm dostum! – dzim