2016-12-06 1 views
1

scatter chartstart method 내부에서 관리하는 방법을 알고 있지만 분산 형 차트가 포함 된 fxml 파일을 사용하고 싶습니다. 그런 다음이를 제어하기 위해 컨트롤러를 사용하고 싶습니다. 이 목적으로 Scenebuilder을 사용했지만 scatterChar에 범주 축을 추가 할 수있는 방법을 모르겠다. 숫자 축을 찾았지만 추가 할 범주 축이 보이지 않았다. 장면에 가로 범주 축이있다. 빌더는 분산 형 차트와 함께 있지만, 나는 그것에 대해 어떤 값을 어떻게 추가 할 수 있는지 모른다. 현장 빌더 안에서 가능합니까? 아니면 컨트롤러에서해야합니까?장면 작성기에서 javaFX의 scatterChar를 어떻게 관리 할 수 ​​있습니까?

답변

1

코드 기반 솔루션

  1. 는 SceneBuilder에서 분산 형 차트를 선택합니다.
  2. 분산 형 차트의 코드 패널에서 할당 할 fx : id (예 : scatterChart)를 입력합니다. 사용자의 카테고리를 추가하여 컨트롤러의 initialize() 방법에

    @FXML ScatterChart scatterChart; 
    
  3. : 컨트롤러에서

  4. 캐터 차트 참조 주입.

    CategoryAxis xAxis = (CategoryAxis) scatterChart.getXAxis(); 
    xAxis.getCategories().setAll(
         "UFO sightings", 
         "Paranormal Events", 
         "Inexplicable Tweets" 
    ); 
    
  5. 당신이 차트 내부 음모 컨트롤러에 데이터를 전달해야하는 경우에서 방법을 선택합니다

다른 부분 FXML 기반 솔루션을

SceneBuilder UI를 통해 차트에 카테고리를 추가 할 수는 없지만, FXML 파일을 직접 편집 할 수는 있습니다. SceneBuilder에서 편집 된 파일을로드하십시오 (파일을 잘 파싱하고 카테고리를 표시하며 저장할 때 손으로 편집 한 내용을 보존합니다). SceneBuilder의 파일).

4 단계에서 정의한 initialize() 코드의 범주를 추가하는 대신 FXML 파일을 수동으로 편집하고 범주를 추가하십시오.

<?xml version="1.0" encoding="UTF-8"?> 

<?import java.lang.String?> 
<?import javafx.collections.FXCollections?> 
<?import javafx.scene.chart.CategoryAxis?> 
<?import javafx.scene.chart.NumberAxis?> 
<?import javafx.scene.chart.ScatterChart?> 

<ScatterChart fx:id="scatterChart" title="Concerning Events" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1"> 
    <xAxis> 
    <CategoryAxis side="BOTTOM"> 
     <categories> 
     <FXCollections fx:factory="observableArrayList"> 
      <String fx:value="UFO Sightings" /> 
      <String fx:value="Paranormal Activity" /> 
      <String fx:value="Inexplicable Tweets" /> 
     </FXCollections> 
     </categories> 
    </CategoryAxis> 
    </xAxis> 
    <yAxis> 
    <NumberAxis side="LEFT" /> 
    </yAxis> 
</ScatterChart> 

screenshot

당신은 FXML을 사용하여 실제 데이터와 차트를 다시 채울 수 없습니다 (하지만 어쨌든 그렇게 할 것이라고 가능성은 거의) : 다음은 샘플입니다.

관련 문제