Scene Builderで作成されたJavaFX円グラフがデータを表示しません
質問
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);
}
}
. 所属していません StackOverflow