2

私は、PHP、HTML、CSSの経験を持つJavaを初めて使用します。グラフがウィンドウで占める幅と高さを変更しようとすると、NetBeansでエラーが発生します。

エラー:setWidth(double)はリージョンchart.setWidth(450);でアクセスを保護しています。

javafxドキュメントを検索したところ、幅/高さがリージョンにバインドされていることがわかりましたが、コードに何が含まれているかわかりません。いくつか試してみましたが、見つかりませんでした...

これは簡単だと思います。

事前に感謝します、ブラッド。

package test;

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.chart.ScatterChart;
import javafx.scene.chart.XYChart;
import javafx.scene.chart.NumberAxis;
import javafx.scene.shape.Rectangle;

public class Test extends Application {



    private void init(Stage primaryStage) {
        Group root = new Group();
        primaryStage.setScene(new Scene(root,1000,1000));

        root.getStylesheets().add("test/Chart.css");

        Rectangle rect = new Rectangle(35,70); 
        rect.setLayoutX(30); 
        rect.setLayoutY(30);
        rect.getStyleClass().add("my-rect");

        NumberAxis xAxis = new NumberAxis("X Axis", -24d, 24.0d, 2.0d);
        NumberAxis yAxis = new NumberAxis("Y Axis", -24.0d, 24.0d, 1.0d);

        ObservableList<XYChart.Series> data = FXCollections.observableArrayList(
            new ScatterChart.Series("Series 1", FXCollections.<ScatterChart.Data>observableArrayList(
                new XYChart.Data(0.2, 3.5),
                new XYChart.Data(0.7, 4.6),
                new XYChart.Data(1.8, 1.7),
                new XYChart.Data(2.1, 2.8),
                new XYChart.Data(4.0, 2.2),
                new XYChart.Data(4.1, 2.6),
                new XYChart.Data(4.5, 2.0),
                new XYChart.Data(6.0, 3.0),
                new XYChart.Data(7.0, 2.0),
                new XYChart.Data(7.8, 4.0)
            )),
            new ScatterChart.Series("Series 2", FXCollections.<ScatterChart.Data>observableArrayList(
                new XYChart.Data(6.2,3.0),
                new XYChart.Data(6.0,4.0),
                new XYChart.Data(5.8,5.0)
            ))    
        );
        ScatterChart chart = new ScatterChart(xAxis, yAxis, data);
        chart.setWidth(450);
        chart.setHeight(450);

        chart.setLayoutX(250);
        chart.setLayoutY(250);



        root.getChildren().addAll(chart,rect);
    }

    @Override public void start(Stage primaryStage) throws Exception {
        init(primaryStage);
        primaryStage.show();
    }
    public static void main(String[] args) { launch(args); }
}
4

1 に答える 1

4

ScatterChart.getHeight()(順番に)のjavadocはRegion.getHeight()言う

プロパティの高さの値を取得します。
プロパティの説明:
このサイズ変更可能なノードの高さ。このプロパティは、レイアウト中にリージョンの親によって設定され、アプリケーションによって設定されない場合があります。アプリケーションが領域のサイズを明示的に制御する必要がある場合は、minHeightprefHeight、およびmaxHeightプロパティを設定して、優先サイズ範囲をオーバーライドする必要があります。

つまり、次の方法でグラフのサイズを調整および制約できます。

ScatterChart.setPrefHeight(double)
ScatterChart.setMinHeight(double)
ScatterChart.setMaxHeight(double)

ScatterChart.setPrefWidth(double)
ScatterChart.setMinWidth(double)
ScatterChart.setMaxWidth(double)

ScatterChart.setPrefSize(double, double)
ScatterChart.setMinSize(double, double)
ScatterChart.setMaxSize(double, double)
于 2012-11-06T11:19:42.427 に答える