Título de borde JavaFX

Esta imagen de arriba es el resultado de mi código, pero quiero lo siguiente.

¿Cómo puedo arreglarlo? El siguiente es mi código. Leí muchas fuentes pero eran demasiado complicadas. Por ejemplo,una fuente que leíCreo que de esta manera es muy complicado. Quizás haya una manera fácil de resolver este problema.

import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

public class Test extends Application {

    public BorderPane border = new BorderPane();

    public Label name = new Label("Name");
    public Label surname = new Label("Surname");

    public TextField name1 = new TextField();
    public TextField surname1 = new TextField();

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

    }

    @Override
    public void start(Stage arg0) throws Exception {
        Scene scene = new Scene(new VBox(), 300, 200);
        arg0.setTitle("Header");
        arg0.setResizable(false);
        scene.setFill(Color.OLDLACE);

        StackPane grid = addStackPane();
        border.setMargin(grid, new Insets(12,12,12,12));
        border.setCenter(grid);

        ((VBox) scene.getRoot()).getChildren().add(border);
        arg0.setScene(scene);
        arg0.show();

    }

    @SuppressWarnings("static-access")
    public StackPane addStackPane() {
        StackPane pane = new StackPane();
        GridPane grid = new GridPane();
        Label title = new Label("Border Title");
        title.setStyle("-fx-translate-y: -7");
        pane.setAlignment(title, Pos.TOP_LEFT);
        grid.setStyle("-fx-content-display: top");
        grid.setStyle("-fx-border-insets: 20 15 15 15");
        grid.setStyle("-fx-background-color: white");
        grid.setStyle("-fx-border-color: black");
        grid.setHgap(10);
        grid.setVgap(10);
        grid.setPadding(new Insets(25, 10, 25, 10));
        grid.add(name, 1, 0);
        grid.add(name1, 2, 0);

        grid.add(surname, 1, 1);
        grid.add(surname1, 2, 1);
        pane.getChildren().addAll(grid, title);

        return pane;
    }

}

Gracias a todos los que leen este tema.

Respuestas a la pregunta(2)

Su respuesta a la pregunta