2

我是 Java 新手,有 PHP、HTML、CSS 经验。当我尝试更改我的图表在窗口中占用的宽度和高度时,NetBeans 给了我错误:

错误:setWidth(double) 在 Region 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()(反过来是)的javadocRegion.getHeight()

获取属性高度的值。
属性描述:
这个可调整大小的节点的高度。该属性由区域的父级在布局期间设置,应用程序可能不设置。如果应用程序需要显式控制区域的大小,则应通过设置minHeightprefHeightmaxHeight属性来覆盖其首选大小范围。

也就是说,您可以调整和限制任何图表的大小:

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 回答