4

「シーン」はScene Builderで作成されていないため、OracleのJavafxの例のいくつかを使用するのに問題があるため、コードは使用したいものとは異なります。

円グラフを保持するシーンビルダーでレイアウトを作成しようとしています。チャートの fxid を「myPieChart」に設定し@FXML private Chart 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 値でインスタンス化されます。

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

どんな助けにも乾杯。

4

2 に答える 2

3

新しい円グラフを作成しないでください。

FXMLの読み込みプロセスにより、グラフインスタンスが作成され、FXMLで定義されたレイアウトペインの子として挿入されます。@FXMLアノテーションは、チャートへの参照をコントローラーに挿入します。

コントローラのイニシャライザで行う必要があるのは、既存のグラフにデータを入力することだけです。これを行うには、 myPieChartでsetDataを呼び出します。

于 2012-10-01T20:05:08.007 に答える
2

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

}
}
于 2013-07-18T12:06:51.553 に答える