我想做的是:
创建一个基本导航HBox导航(在代码中也称为HBox导航),然后使用HBox导航为每个场景/页面制作专门的导航系统(类似于主类,然后是子类,不使用类)。
问题:
HBox根本没有显示出来。它最初是工作的,当我单独为每个页面制作一个独特的导航HBox时,但是当我试图为每个页面定制一个主导航系统时,它就停止显示了。
//imports:
package com.example.phonecustomiser;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import java.io.IOException;//actual code:
public class HelloApplication extends Application {
@Override
public void start(Stage stage) throws IOException {
//universal buttons
Button playButton = new Button("PLAY");
playButton.setPrefWidth(100);
Button menuButton = new Button("MENU PAGE");
menuButton.setPrefWidth(100);
Button startButton = new Button( "START PAGE");
menuButton.setPrefWidth(100);
//universal navigation
HBox nav = new HBox(); // <------ HBOX NAV
nav.setMaxHeight(100);
nav.setStyle("-fx-background-color: white");
nav.setPadding(new Insets(40, 40, 40, 40));
nav.setSpacing(10);
nav.getChildren().addAll(playButton, menuButton);
//startPage
StackPane startCanvas = new StackPane();
HBox startNav = nav; // <--- SPECIALISED NAV
startNav.setStyle("-fx-background-color: red");
startCanvas.getChildren().addAll(startNav); // <--- NOT SHOWING
//menuPage
StackPane menuCanvas = new StackPane();
HBox menuNav = nav;
menuNav.setStyle("-fx-background-color: green");
menuCanvas.setAlignment(menuNav, Pos.BOTTOM_CENTER);
menuCanvas.getChildren().addAll(menuNav);
//scenes
Scene startScene = new Scene(startCanvas, 600, 600);
Scene menuScene = new Scene(menuCanvas, 600, 600);
//button functions
menuButton.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent actionEvent) {
stage.setScene(menuScene);
}
});
stage.setScene(startScene);
stage.show();
}
public static void main(String[] args) {
launch();
}
}发布于 2022-01-13 00:50:46
我在想这些对象,好像它们是原始的类型。所以: int猴子= 5;int牛=猴子;
cow++;这不影响猴子
但是物体不是这样工作的。围绕解决方案的工作是(至少我找到了),创建一个全新的类并将导航系统放在其中,然后为每个场景/页面调用类的新实例。我上的课:
package com.example.phonecustomiser;
import javafx.geometry.Insets;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
public class Menu {
Button playButton = new Button("PLAY");
Button menuButton = new Button("MENU PAGE");
Button startButton = new Button( "START PAGE");
HBox nav = new HBox();
public void setUp(){
playButton.setPrefWidth(100);
menuButton.setPrefWidth(100);
menuButton.setPrefWidth(100);
nav.setMaxHeight(100);
nav.setStyle("-fx-background-color: green");
nav.setPadding(new Insets(40, 40, 40, 40));
nav.setSpacing(10);
nav.getChildren().addAll(playButton, menuButton);
}
}该类别的实施情况:
StackPane startCanvas = new StackPane();
Menu startNav = new Menu();
startNav.setUp();
startNav.nav.setStyle("-fx-background-color: red");
startCanvas.getChildren().addAll(startNav.nav);
startCanvas.setAlignment(startNav.nav, Pos.BOTTOM_CENTER);https://stackoverflow.com/questions/70689889
复制相似问题