-1

我创建了一个移动应用程序,现在我将着手使代码更简单、更精确。我想将其中一个页面从大量集群切换到边框窗格,因为它会使我的代码更清晰。出于某种原因,当我评论工作代码以使用边框窗格时,我的标签和其他所有内容都不会显示。我觉得好像是我看不到的小东西

我试过制作一个场景,setLeft 动作

public BookNow(){

BorderPane bookClub = new BorderPane();
Vbox labels = new VBox();
Label city = new Labels("City: ");
Label venue= new Labels("Venue: ");   
Label date = new Labels("Date: ");   
Label appArrivalTime = new Labels("Approxiamte Time of Arrival: ");

labels.getChildren().addAll(city, venue, date, appArrivalTime);
bookClub.setLeft(labels);

}

它应该只显示 BorderPane 左侧的标签。

4

1 回答 1

0

更新

你在哪里插入BorderPane元素?您必须将组件插入Scene到主 FXML 中调用的实例中,Stage然后BorderPane使用所有元素进行初始化。此外,将代码信息写入 FXML 文件比写入 Java 类更清晰:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.VBox?>

<BorderPane xmlns:fx="http://javafx.com/fxml/1">
    <left>
        <VBox>
            <Label>City: </Label>
            <Label>Venue: </Label>
            <Label>Date: </Label>
            <Label>Approximate Time of Arrival: </Label>
        </VBox>
    </left>
</BorderPane>

您必须使用以下方法将 FXML 文件(例如,“view.fxml”)链接到 JavaFX 应用程序窗口FXMLLoader.load()

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class Main extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        Scene scene = new Scene(FXMLLoader.load(getClass().getResource("/package/path/to/the/fxml/file/view.fxml")));
        primaryStage.setScene(scene);
        primaryStage.show();
    }

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

它回答了你的问题吗?

于 2019-07-31T11:28:27.663 回答