首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaFX绘制单个轴

JavaFX绘制单个轴
EN

Stack Overflow用户
提问于 2013-06-02 10:33:03
回答 1查看 529关注 0票数 1

如何将单个轴绘制到窗格?

如果我天真地尝试addAll(axis),它会给我一个运行时异常

我正在浏览XYChart源代码,寻找关于它如何绘制轴的答案。

编辑:

来源

代码语言:javascript
复制
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.NumberAxis;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class TestSingleAxis extends Application {


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

    @Override
    public void start(Stage stage) {

        StackPane root = new StackPane();

        root.getChildren().addAll(new NumberAxis(1, 20, 1));

        Scene scene = new Scene(root, 1300, 800, Color.WHITESMOKE);
        stage.setScene(scene);
        stage.show();

    }

}

结果

代码语言:javascript
复制
Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:548)
    at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:48)
    at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:134)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NullPointerException
    at javafx.scene.chart.Axis.layoutChildren(Axis.java:744)
    at javafx.scene.chart.ValueAxis.layoutChildren(ValueAxis.java:359)
    at javafx.scene.Parent.layout(Parent.java:1014)
    at javafx.scene.Parent.layout(Parent.java:1022)
    at javafx.scene.Scene.layoutDirtyRoots(Scene.java:537)
    at javafx.scene.Scene.doLayoutPass(Scene.java:508)
    at javafx.scene.Scene.preferredSize(Scene.java:1467)
    at javafx.scene.Scene.impl_preferredSize(Scene.java:1494)
    at javafx.stage.Window$10.invalidated(Window.java:720)
    at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:106)
    at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:140)
    at javafx.stage.Window.setShowing(Window.java:783)
    at javafx.stage.Window.show(Window.java:798)
    at javafx.stage.Stage.show(Stage.java:242)
    at guifx.TestSingleAxis.start(TestSingleAxis.java:32)
    at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:491)
    at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:260)
    at com.sun.javafx.application.PlatformImpl$5$1.run(PlatformImpl.java:223)
    at com.sun.javafx.application.PlatformImpl$5$1.run(PlatformImpl.java:220)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl$5.run(PlatformImpl.java:220)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)

Process finished with exit code 1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-02 19:29:19

观察一些版本的代码,在744行附近,我看到:

代码语言:javascript
复制
    if (getSide().equals(Side.LEFT)) {

这段代码告诉我:

代码语言:javascript
复制
@Override
public void start(Stage primaryStage) {
    System.out.println(new NumberAxis(1, 2, 3).getSide());
}

>>null

看起来,无论如何你都需要指定侧边..

有帮助吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16879237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档