Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX中场景背景和新标签之间的问题_Java_Javafx_Graphics_Label - Fatal编程技术网

JavaFX中场景背景和新标签之间的问题

JavaFX中场景背景和新标签之间的问题,java,javafx,graphics,label,Java,Javafx,Graphics,Label,我正准备用JavaFX开发一款蛇游戏(我是benniger)。 在主方法中,我设置了scene.setFill(Color.BLACK),因此背景是完全黑色的。当我添加标签时,当我尝试实例化它时,背景消失,标签不显示在屏幕上。 如果我添加矩形或圆形,但仅添加标签、按钮和ecc,则不会发生这种情况 我怎样才能解决这个问题?我认为这是一个简单的问题,但我自己解决不了 /Main.java GamePanel g = new GamePanel(); BorderPa

我正准备用JavaFX开发一款蛇游戏(我是benniger)。 在主方法中,我设置了scene.setFill(Color.BLACK),因此背景是完全黑色的。当我添加标签时,当我尝试实例化它时,背景消失,标签不显示在屏幕上。 如果我添加矩形或圆形,但仅添加标签、按钮和ecc,则不会发生这种情况

我怎样才能解决这个问题?我认为这是一个简单的问题,但我自己解决不了

/Main.java

        GamePanel g = new GamePanel();

        BorderPane root = new BorderPane();
        //Scene scene = new Scene(root,400,400, Color.BLACK);
        Scene scene = new Scene(root,400,400);
        scene.setFill(Color.BLACK);
        scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
        primaryStage.setScene(scene);
        primaryStage.setTitle("SnakeFX");

        primaryStage.show();


        root.getChildren().add(g);

        g.requestFocus();
/java(我只放了函数initialize()的一部分 是构造函数的第一个函数,用于初始化 游戏图形,必须包含我的标签)

void initialize(){
/*如果我画这条线,背景上的黑色就会消失
并且标签不会出现在屏幕上。
没有这条线,游戏运行得非常完美,但是我需要添加这条线
乐谱呢*/
标签l=新标签(“测试”);//这是一行
对于(inti=0;i这是一个JavaFx错误(请参阅)

您在第二张图像中看到的是根节点(BorderPane)的背景色(在javafx默认主题中定义,它是不透明的)。这是正确的状态-第一张图像显示了上面链接的答案中描述的错误

您可以轻松解决问题:

  • 从根节点删除背景色,使场景的背景色可见:

    root.setBackground(Background.EMPTY);
    
  • 或者,将根节点的背景颜色设置为黑色:

    root.setBackground(new Background(new BackgroundFill(Color.BLACK, null, null)));
    

  • 您能将“application.css”文件添加到您的问题中吗?Thanksit是空的。我没有使用它。@DustinRSee:。某些部分缺少代码的一部分。您只是实例化了一个标签,它根本不会添加到场景中,因此不会更改任何内容。请遵循@Sedricks的建议,在执行此操作时,您有时会自己发现问题,因为您需要以某种方式接触代码的所有相关部分。@Ignatimus问题在于。同样,当abel没有添加到场景中,它会更改背景颜色。这是一件奇怪的事情。我没有将标签添加到scsne,以表明问题仍然存在,当时我只是实例化了标签。我解决了这个问题,现在屏幕仍然是黑色的,但为什么我无论如何都看不到标签?您是否已将标签添加到场景中(
    getChildren().add(l)
    )您是否已将其文本颜色更改为黑色背景上可见的任何颜色?
    root.setBackground(new Background(new BackgroundFill(Color.BLACK, null, null)));