2012-03-18 5 views
9

JavaFX 프로젝트에는 꺾은 선형 차트가 필요합니다. 나는 쉽게 CSS를 사용하여 전체 차트와 일련의 스타일을 적용 할 수 있지만, 우리의 차트의 내용을 동적으로 변경할 수 있습니다 시리즈의JavaFX 2.0 꺾은 선형 차트에서 선 스타일을 동적으로 변경하는 방법은 무엇입니까?

  1. 수와 표시 순서는 사용자의 행동과 자신의 데이터에 따라 달라집니다. 각 시리즈는 구체적인 데이터 카테고리를 나타내며 각 카테고리는 고유 한 스타일을가집니다. 범주 A는 점선으로 표시되고 범주 B는 점선으로 표시됩니다. 차트는 각 카테고리에 대해 0 이상의 시리즈를 포함 할 수 있습니다.

  2. 스타일의 스타일은 데이터 값에 따라 다릅니다. 평균 이상의 시리즈 선은 빨간색이고 아래는 파란색입니다.

JavaFX에서 수행하는 방법은 무엇입니까?

+0

나는 그것을 할 방법이 없다고 믿을 수 없다. 그것은 끔찍한 디자인 결함입니다. – CarrKnight

답변

7
  1. 일련 번호와 표시 순서는 사용자 작업과 그의 데이터에 따라 다릅니다.

시리즈의 번호가 표시 및 표시 순서는 차트의 setData() 호출에 전달 시리즈의 ObservableList을 변경하여 수정할 수 있습니다. 차트가 목록 변경 사항을 수신하면 지원 목록이 변경되면 차트가 자동으로 업데이트되어 변경 내용을 반영합니다.

각 카테고리에는 고유 한 스타일이 있습니다. 범주 A는 점선으로 표시되고 범주 B는 점선으로 표시됩니다.

가있는 차트되는 일련의 결정에 의해 수행 할 수있는 범주에서, 노드 lookupAll(cssStyleSelector) 기능을 통해 일련의 관련된 모든 노드를보고 범주의 스타일과 일치하는 일련의 새로운 사용자 지정 스타일을 적용 . 점선과 점선은 -fx-stroke-dash-array css 속성을 설정하여 CSS를 통해 스타일을 지정할 수 있습니다. 또는 룩업 대신 getStyleClass()에서 반환 된 ObservableList를 수정하여 노드에 할당 된 CSS 스타일 클래스를 동적으로 변경할 수 있습니다.

시리즈의 스타일 역시 데이터 값에 따라 다릅니다. 평균 이상의 시리즈 선은 빨간색이고 아래는 파란색입니다.

이 점선과 점선이 표시되는 방법과 유사하지만, 대신 라인의 색상이 -fx-stroke CSS 속성에 의해 약간 변형 및 수정이 시리즈에 대해 계산 된 평균 값에 따라 달라집니다. , https://gist.github.com/2129306

+0

고마워요! 예제는 훌륭하고 매우 유용합니다. – Kojak

4

, 나는 다음과 같이했다 꽤 유용하다고 생각 :

위의 점을 설명하기 위해, 내가 여기이 질문에 대한 샘플 솔루션을 만들었습니다. 참고 : 이것은 분명히 LineCharts에서는 작동하지만 ScatterCharts에서는 작동하지 않습니다.

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

스테이지가 표시되지 않으면 NPE가 throw됩니다. 조심해. – GGrec

관련 문제