gpt4 book ai didi

java - 调用 setGridLinesVisible(true) 时,GridPane 布局调试行未按预期显示

转载 作者:搜寻专家 更新时间:2023-10-30 19:43:57 24 4
gpt4 key购买 nike

我试图在 JavaFX 中显示 GridPane 场景的网格线,但尽管调用了 setGridLinesVisible(true),它们仍未显示。我做错了什么?

我想在我的程序的主菜单上显示网格线,这样我就可以知道在其上放置节点的位置。不幸的是,当我运行该程序时,显示的只是一个只有一个按钮的空白屏幕。

我的 MainMenu 类:

package screens;

import javafx.scene.layout.GridPane;
import javafx.scene.layout.Pane;

/**
* Creates the main menu Pane object and returns it.
* @author LuminousNutria
*/
public class MainMenu {

public MainMenu() {}

public Pane getPane() {
GridPane grid = new GridPane();
grid.setGridLinesVisible(true);

Button bttn = new Button("button");
grid.add(bttn, 2, 2);

return grid;
}
}

我的主类:

package mainPackage;

import screens.*;

import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;

/**
* Displays the Pane.
* @author LuminousNutria
*/
public class Main extends Application {

// create main menu Pane
private Pane mainMenu = new MainMenu().getPane();

// create Scene
private Scene scene = new Scene(mainMenu, 1600, 900);

@Override
public void start(Stage stage) {

stage.setScene(scene);
stage.show();
}

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

这是显示的: enter image description here

最佳答案

JavaFX 的 GridPane 类只会创建程序员在设置对象在网格上的位置时定义的点数。

例如,如果将对象添加到网格中,x 和 y 位置都等于 0,则网格将只有一个 (x, y) 位置,即 (0, 0)。

此外,即使网格有很多位置,除非程序员设置HGapVgap网格属性,否则网格的所有“位置”,都将是在程序创建的窗口中的同一点上。

问题是我没有调整 HGapVGap 属性,所以整个网格只聚集在窗口中的一个点上。这使得看不到任何线条。

用下面的代码替换 getPane() 方法让我看到了网格线。

public Pane getPane() {
GridPane grid = new GridPane();
grid.setGridLinesVisible(true);
grid.setVgap(8);
grid.setHgap(8);

Button btn = new Button("button");
grid.add(btn, 5, 5);

return grid;
}

这是我修复程序后显示的内容。

enter image description here

关于java - 调用 setGridLinesVisible(true) 时,GridPane 布局调试行未按预期显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53573893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com