2012-10-01 4 views
3

오라클의 일부 Javafx 예제를 사용하는 데 문제가있어서 Scene Builder에서 코드를 작성하지 않아서 코드를 사용하고자하는 것과 다릅니다.장면 작성기로 만든 Javafx PieChart가 데이터를 표시하지 않습니다.

파이 차트가있는 scenebuilder로 레이아웃을 만들려고합니다. 내 코드 시작 부분에 해당 @FXML private Chart myPieChart;이있는 'myPieChart'차트의 fxid를 설정했습니다.

나는 또한 내가 차트를 상자에 포장 한 것이라고 생각 초기화에서 실행됩니다 다음 코드를 추가했습니다 : -

ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList(
      new PieChart.Data("Grapefruit", 13), 
      new PieChart.Data("Oranges", 25), 
      new PieChart.Data("Plums", 10), 
      new PieChart.Data("Pears", 22), 
      new PieChart.Data("Apples", 30)); 


    PieChart myPieChart = new PieChart(pieChartData); 

의 모든 수치가 관찰 목록에 투입되는 다음 원형 차트입니다 ObsevableList 값으로 인스턴스화합니다.

불행히도 내 원형 차트가 표시되지 않습니다 .... 내가 뭘 놓친 거지?

도움을 청합니다.

+0

에 대한 fxml의 ID를 설정하여 다음과 같이 할 수 있습니다. – jewelsea

답변

2

새로운 PieChart를 만들지 마십시오.

FXML 로딩 프로세스는 사용자를 위해 차트 인스턴스를 만들고이를 FXML 정의 레이아웃 패널의 하위로 삽입합니다. @FXML 주석은 차트에 대한 참조를 컨트롤러에 삽입합니다.

컨트롤러의 초기화 프로그램에서 수행해야 할 작업은 기존 차트에 데이터를 채우는 것뿐입니다. myPieChart에서 setData을 호출하여이 작업을 수행 할 수 있습니다.

+0

건배! 나는 또한 '@FXML 비공개 Chart myPieChart;' '@FXML private PieChart myPieChart'여야합니다. 이러한 변경이 이루어지면 모두 잘되었습니다! Manyt hanks fella ... 이제 resultSet에서 결과를 TabelView로 가져 오는 방법을 찾아야합니다. D – user1673554

1

여러분은 여전히 ​​또한 fxml 파일과 fxml로드 코드를 게시, 내 대답을 기반으로 업데이트 한 후 문제가있는 경우 바로 차트

public class GraphScreenController implements Initializable { 

    @FXML 
    PieChart chart; 

@Override 
public void initialize(URL url, ResourceBundle rb) { 
    // TODO 
ObservableList<PieChart.Data> pieChartData = 
      FXCollections.observableArrayList(
      new PieChart.Data("Executed", 60), 
      new PieChart.Data("Passed", 25), 
      new PieChart.Data("Fails", 15)); 

chart.setData(pieChartData); 

} 
} 
관련 문제