E’ realmente bem simples, basta seguir a receitinha.
(no netbeans 11 e jdk 12 voce deve criar um projeto modular)
1.New Project
1.1 Java with Ant
1.1.1 Java Modular Project
Obs : ( No Projeto com o botao direito do mouse ) Properties / Libraries / Compile / Module Path [+] (Add jar / folder) <-- uma forma apenas
exemplo veja se tudo esta dentro desse diretorio
javafx-sdk-12.0.1/lib
javafx.base.jar // essa
javafx.controls.jar // supondo que usara essa
javafx.fxml.jar // supondo que usara essa
javafx.graphics.jar // supondo que usara essa
javafx.media.jar
javafx.swing.jar
javafx-swt.jar
javafx.web.jar
Dentro do Projeto
2 New Module ( Com o botao direito do mouse )
2.1 vou dar uma nome para teste meuModulo
2.2 procure por module-info.java // meuModulo – classes – default package
module-info.java
2.3 dentro dele coloca
module meuModulo {
requires javafx.controls;
requires javafx.fxml;
requires javafx.graphics;
exports meutest.com; // sao os packages do seu modulo que serão visiveis
opens meutest.com to javafx.fxml; // se for alterar propriedades dos componentes
}
3.Quando voce cria um modulo no netbeans 11, ele não esta aparecendo a opçao
New File --> Empty FXML
então nesse caso você simplesmente abre o SceneBuilder e cria o seu FXML e Save As dentro da pasta do projeto meutest com de maneira que no netbeans apareça
–> meutest.com
-----> minhaTela.fxml // escolha o nome que quiser
4.agora chegamos no ponto que você queria saber, porem trabalhar com modulos no java 11 e superior é um pouco deferente, e tem muitas vantagens.
(Agora toda vez que for mudar a tela usa botao direito do mouse --> Open ou edit para alterar alguma coisa na mão dentro do FXML)
A opção Make Controller // botao direito do mouse, criará um arquivo java para controlar essa tela em questão e liga-la com seus programas.
-
Resta apenas saber como chamar esse controller
package meutest.com;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.image.ImageView;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class TelaFXML extends Application {
@Override
public void start(Stage stage) throws Exception {
stage.setTitle("Test FXML");
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("minhaTela.fxml"));
Parent parent = (Parent)fxmlLoader.load();
// O nome do programa Tela1Controller, foi Make Controller do netbeans quem deu e criou o programa
MinhaTelaController telacontroller = fxmlLoader.getController();
Scene scene = new Scene(parent);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}