我正在尝试创建一个像这样的轴系统:
java - JavaFX独立旋转NumberAxis-LMLPHP

我正在使用javafx.scene.chart.NumberAxis。

x轴非常简单:

NumberAxis xAxis = new NumberAxis(xStart,xEnd,xIncrement);


有没有办法将y轴旋转90度,使其看起来如上图所示?

我尝试使用Node的setRotate,但是,正如文档所述,它旋转了整个图形。 (我只想旋转轴而不旋转它附带的数字)。

 NumberAxis yAxis = new NumberAxis(yStart,yEnd,yIncrement);
 yAxis.setRotate(90);

最佳答案

您只需要设置一边:

NumberAxis yAxis = new NumberAxis(yStart,yEnd,yIncrement);
yAxis.setSide(Side.LEFT); // or Side.RIGHT


这是一个简单的示例:

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Side;
import javafx.scene.Scene;
import javafx.scene.chart.NumberAxis;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;

public class AxisTest extends Application {

    @Override
    public void start(Stage primaryStage) {
        NumberAxis leftAxis = new NumberAxis(0, 100, 10);
        leftAxis.setSide(Side.LEFT);

        NumberAxis bottomAxis = new NumberAxis(0, 100, 10);


        GridPane root = new GridPane();
        Pane center = new Pane();
        center.setPrefSize(600, 600);
        root.add(center, 1, 0);
        root.add(leftAxis, 0, 0);
        root.add(bottomAxis, 1, 1);

        root.setPadding(new Insets(10));

        Scene scene = new Scene(root);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}


java - JavaFX独立旋转NumberAxis-LMLPHP

09-10 05:47
查看更多