我正在用javafx做一个简单的象棋游戏。从我的起始类开始,我成功地使用另一个类“uibuilder”来修改“stage primarystage”。我的uibuilder方法创建一个场景,添加一个gridpane,并用节点(imageview图片,但这应该是任意的)填充gridpane。
这是我的“uibuilder”构造函数的代码,100%用于创建阶段、显示节点等。
我正在尝试向uibuilder类添加一个方法,我可以从我的起始类启动它。我只想更改静态gridpane rootgrid的特定节点。e、 g如果rootgrid是一个8x8的图像网格,例如chess,我想把节点7,7改成一个按钮来代替图像。我知道使用静态节点可能不是最佳实践,但我正在尝试掌握基本gui创建的诀窍,然后再百分之百地担心这些小细节。考虑到节点是静态的,我特别困惑。任何关于跨类使用javafx的一般性建议都会很有帮助。我已经检查了8页的stackoverflow,还没有遇到这个问题。谢谢你的耐心。
我尝试将静态gridpane rootgrid返回到主类,然后使用gridpane root=uibuilder.getgrid()root.add(arbitrarybutton,7,7);
我还尝试简单地使用uibuilder类中的方法来创建按钮并将其添加到静态gridpane rootgrid。为此,我尝试使用uibuilder中的getter传递场景和gridpane,我想也许我可以将它们传递回uibuilder,然后添加一个按钮。
public static void buttonTest(Scene testScene, GridPane passGrid) {
Button testButton = new Button("Test");
passGrid.add(testButton, 8, 8);
}
Class variables
public static Stage cosmos;
public static GridPane rootGrid;
public static Scene rootScene;
public static String testString;
public static Button returnButton;
UIBuilder(Stage mainStage) {
GridPane rootGrid = new GridPane();
Scene scene = new Scene(rootGrid,1000,1600);
rootScene = scene;
mainStage.setScene(scene);
mainStage.show();
stageTestSize(mainStage, rootGrid);
rootGrid.setVgap(15);
rootGrid.setHgap(15);
randomUnits(rootGrid);
}
在我的start方法下,下面的构造函数引用了上面的代码,并且工作得非常好。
UIBuilder uiMaster = new UIBuilder(primaryStage);
Scene exampleScene = UIBuilder.getScene();
GridPane exampleGrid = uiMaster.getGrid();
暂无答案!
目前还没有任何答案,快来回答吧!