2012-03-18 21 views
9

bir çizgi grafiği gerekir. Ben kolay CSS kullanarak tüm grafiği ve dizi stilize olabilir, ama bizim grafiğin içeriği dinamik değiştirebilirsiniz: serisininnasıl dinamik olarak JavaFX 2.0 çizgi grafikte çizgi stilini değiştirmek için? Bizim JavaFX projede

  1. sayısı ve görüntülenme sırası kullanıcı eylemleri ve onun verilere bağlıdır. Her seri, somut bir veri kategorisini temsil eder ve her kategorinin kendi stili vardır, örn. A kategorisi noktalı çizgi olarak gösterilir ve B kategorisi kesikli çizgi olarak gösterilir. grafik serisine

  2. tarzı da veri değerlerine bağlıdır; örneğin, her bir kategori için 0 veya daha fazla dizi içerebilir. ortalama çizgisi ortalama kırmızıdır ve aşağıda mavidir.

JavaFX'te nasıl yapılır? dizi ve onların gösteren düzenin

+0

Bunu yapmanın bir yolu olmadığına inanamıyorum. Bu çok korkunç bir tasarım hatası. – CarrKnight

cevap

7
  1. numara kullanıcı eylemleri ve onun verilere bağlıdır.

serisinin sayısı görüntülenir ve ekran sırası grafiğin setData() çağrısına geçirilen serinin ObservableList değiştirerek değiştirilebilir. Grafik, listedeki değişiklikleri dinlediğinden, yedekleme listesi değiştikçe, grafik değişiklikleri yansıtacak şekilde otomatik olarak güncellenir.

her kategori, örneğin kendi tarzı vardır. A kategorisi noktalı çizgi olarak gösterilir ve B kategorisi kesikli çizgi olarak gösterilir.

Bu

olduğu grafikte hangi serisi belirlenerek müracaat hangi kategori içinde, düğüm lookupAll(cssStyleSelector) fonksiyonu yoluyla seri ile ilgili tüm düğümlerin ararken ve kategori için stilinize uyan serisine yeni bir özel stil uygulamak . Noktalı ve kesik çizgiler -fx-stroke-dash-array css özelliğini ayarlayarak css yoluyla tarz edilebilir. Alternatif olarak, bir arama yerine, getStyleClass()'dan döndürülen ObservableList'i değiştirerek düğümlere atanan css stil sınıfını dinamik olarak değiştirebilirsiniz. Serinin

tarzı da veri değerlerine örn bağlıdır. ortalama çizgisi ortalama kırmızıdır ve aşağıda mavidir.

Bu noktalı ve kesikli çizgiler gösterildi şekline benzer, ancak bunun yerine çizgilerin renk -fx-stroke CSS özelliği ile değişikliğe uğratılmış olan ve modifikasyon serisi için hesaplanan ortalama değerlerine bağlıdır. , https://gist.github.com/2129306

+0

Çok teşekkürler! Örnek harika ve çok kullanışlı. – Kojak

4

böyle yaptım oldukça kullanışlı olduğunu düşündüm:

yukarıdaki noktaları göstermek için, burada bu soru için örnek bir çözüm yarattı. Not: Bu, LineCharts üzerinde çalışıyor ancak ScatterCharts çalışmıyor.

Series<Number, Number> series = new Series<>(); 
... 
series.nodeProperty().get().setStyle("-fx-stroke-width: 1px;"); 
+3

Sahne gösterilmiyorsa, bu bir NPE atar. Dikkatli ol. – GGrec