質問

OracleからのJavaFXの一部を使用して問題を持つIM 'Scenes'はシーンビルダーでは作成されないため、コードはそれを使用したいものとは異なります。

im円グラフを保持するSceneBuilderでレイアウトを作成しようとしています。コードの開始時に、対応する@FXML private Chart myPieChart;を使用して、チャートのFXIDを 'mypiechart'に設定しました。

私は、私がチャートを区切ったと思った初期化で実行される次のコードを追加しました: -

    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値でインスタンス化されます。

残念ながら私の円グラフは表示されていません....私は何をしていますか?

援助のために歓声を下げてください。

役に立ちましたか?

解決

新しいPiechartを作成しないでください。

FXMLロードプロセスはあなたのためにチャートインスタンスを作成し、それをFXML定義レイアウトペインの子として挿入します。@FXMLアノテーションは、チャートへの参照をコントローラに注入します。

コントローラの初期化装置で行う必要があるのは、既存のチャートにデータを入力します。これを行うには、 SETDATA

他のヒント

チャートの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