Java 网格窗格布局调试行不是';调用setGridLinesVisible时,t按预期显示(true)
我试图在JavaFX中显示GridPane场景的网格线,但尽管调用了Java 网格窗格布局调试行不是';调用setGridLinesVisible时,t按预期显示(true),java,javafx,java-8,gridpane,Java,Javafx,Java 8,Gridpane,我试图在JavaFX中显示GridPane场景的网格线,但尽管调用了setGridLinesVisible(true),它们仍然没有显示出来。我做错了什么 我想在程序的主菜单上显示网格线,这样我就可以知道在它上面放置节点的位置。不幸的是,当我运行程序时,显示的只是一个带有单个按钮的空白屏幕 我的主菜单类: package screens; import javafx.scene.layout.GridPane; import javafx.scene.layout.Pane; /** *
setGridLinesVisible(true)
,它们仍然没有显示出来。我做错了什么
我想在程序的主菜单上显示网格线,这样我就可以知道在它上面放置节点的位置。不幸的是,当我运行程序时,显示的只是一个带有单个按钮的空白屏幕
我的主菜单类:
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);
}
}
我的主课:
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);
}
}
这将显示:
JavaFX的GridPane类将只创建程序员在设置网格上对象位置时定义的点 例如,如果将对象添加到栅格中,且x和y位置均等于0,则栅格将只有一个(x,y)位置,即(0,0) 此外,即使网格有许多位置,除非程序员设置
HGap
和Vgap
网格属性,否则网格的所有“位置”都将位于程序创建的窗口中的同一点上
问题是我没有调整HGap
和VGap
属性,因此整个网格仅聚集在窗口中的一个点上。这使得它不可能看到任何线条
用下面的代码替换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;
}
这是我修复程序后显示的内容