문제

IM은 장면 빌더로 '장면'이 생성되지 않으므로 Oracle에서 Oracle의 일부 JavaFX 예제를 사용하는 데 문제가 있으므로 코드가 사용하려는 것과 다릅니다.

PIE 차트를 보유하고있는 SceneBuilder로 레이아웃을 만들려고합니다.차트의 FXID를 'MyPieChart'로 설정하여 코드 시작시 해당 @FXML private Chart myPieChart;로 설정했습니다.

I INITIATIONATION에서 실행되는 다음 코드를 추가하여 차트를 크레이트 할 것으로 생각했습니다. -

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

모든 값은 Observable 목록에 넣고 원형 차트가 obsevableist 값으로 인스턴스화됩니다.

불행히도 내 원형 차트가 표시되지 않습니다 .... 나는 누락 된 것입니까?

어떤 도움을 위해 환호합니다.

도움이 되었습니까?

해결책

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

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

컨트롤러의 이니셜 라이저에서 수행 해야하는 것은 기존 차트를 데이터로 채우는 것입니다. setdata mypiechart.

다른 팁

차트의 FXML에서 ID를 설정하면 이렇게 할 수 있습니다.

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

}
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top