JavaFX é uma plataforma de software para a criação de interfaces gráficas de usuário (GUIs) em Java. Lançada em 2014, a JavaFX oferece um conjunto de APIs e ferramentas para o desenvolvimento de aplicativos desktop, móveis e embarcados com interfaces visuais ricas e interativas.
Diferentemente do Java Swing, o JavaFX adota uma abordagem mais moderna e orientada a objetos para a criação de interfaces gráficas. Ele ainda pode utilizar uma linguagem de marcação chamada FXML para definir a estrutura da interface e um conjunto de classes Java para definir o comportamento e a lógica do aplicativo.
Comparação entre componentes JavaFX, JavaSwing e AWT. Fonte: CHARATAN, Quentin; KANS, Aaron. Java in two semesters. McGraw-Hill, 2019, Springer.
Hierarquia de componentes JavaFX. Fonte: https://platzi.com/tutoriales/1631-java-basico/9075-javafx-scene-builder/
Criar um novo Projeto Java no VSCode usando JavaFX;
Alterar o projeto conforme suas necessidades.
Observação: Pode ser que você já tenha feito alguma dessas instalações quando fez a aula Ambiente de Trabalho VS Code .
Instale a JDK para a plataforma desejada - A versão mais recente* é a JDK 19.
Reinicialize sua máquina sempre que for solicitada durante o processo de instalação.
Instale o VS Code para a plataforma desejada - a versão mais recente* é a 1.76.0;
Durante a instalação do VS Code, habilite a opção de adicionar o comando "code" no PATH (ou faça essa configuração depois);
Se desejar, instale o pacote de idiomas para o VS Code;
Reinicialize sua máquina sempre que for solicitada durante o processo de instalação.
Outras extensões sempre podem ser encontradas na VSCode Marketplace.
Crie um novo projeto Java no VS Code:
Acesse a Paleta de Comandos ( Ctrl+Shift+P );
"Java: Create Java Project..."; /* Cria um novo projeto Java. */
"JavaFX create from archetype - Provided by Maven"; /*Esta opção define a criação de um projeto JavaFX nos moldes da ferramenta de construção Maven */
Informe o identificador de grupo para seu projeto - ex.: com.example ;
Informe o identificador de artefato para seu projeto - ex.: demo ;
Informe ou Crie a pasta do projeto - ex.: MeuProjetoJDBC;
Informe um nome para o projeto - ex.: MeuProjetoJDBC;
Na saída do Terminal: Ao aparecer as mensagens...
Define value for property 'version' 1.0-SNAPSHOT - tecle Enter
Confirm properties configuration - tecle Enter
Execute o projeto criado para testar seu funcionamento :)
Projeto JavaFX criado e executado no VSCode - Fonte: Autoral.
Error: JAVA_HOME not found in your environment.
Please set the JAVA_HOME variable in your environment to match the location of your Java installation.
Feche o VSCode;
No Windows, acesse a opção de configuração "Editar as variáveis de ambiente do sistema" em Painel de Controle.
Selecione Avançado > Variáveis de Ambiente > Variáveis do Sistema > Novo:
Nome da Variável: JAVA_HOME
Procurar no diretório: selecioinar o diretório onde o Java está instalado - ex.: C:\Program Files\Java\jdk-18.0.2.1
Reabra o VSCode e recomece o processo de criação do projeto...
O projeto criado por default é um projeto JavaFX archetype Maven e, por isso, é um projeto voltado para aplicações web mais robustas e complexas, o que foge ao escopo desta disciplina.
Desta forma, você não precisa se preocupar com o conteúdo do diretório/arquivos a seguir, podendo excluí-los:
/resources - diretório com interfaces em arquivos *.fxml
O diretório src/main/java/[identificador de grupo] contém a classe principal App.java e as classes controladoras PrimaryController e SecondaryController responsáveis pela tela 1 e tela 2, respectivamente, do projeto default.
Ou seja, você pode apagar os arquivos PrimaryController.java e SecondaryController.java e alterar o arquivo App.java conforme o seu novo projeto JavaFX.
Segue uma sugestão de Hello World em JavaFX para substituir o conteúdo da classe App.java . Este exemplo usa o conteúdo de uma caixa de texto TextField para alterar o conteúdo de um texto em rótulo Label.
Projeto JavaFX Hello World - Fonte: Autoral.
package com.example;
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.geometry.Pos;
import javafx.event.EventHandler;
import javafx.event.ActionEvent;
public class App extends Application
{
@Override
public void start(Stage primaryStage) {
Label label;
TextField tf;
Button button;
VBox vbox;
Scene scene;
tf = new TextField("Text Field!");
tf.setMaxWidth(200);
label = new Label("Type text and click the button");
button = new Button("Click");
button.setOnAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent e) {
label.setText(tf.getText());
}
});
vbox = new VBox(label, tf, button);
vbox.setSpacing(20);
vbox.setAlignment(Pos.CENTER);
scene = new Scene(vbox, 300, 200);
primaryStage.setTitle("A Simple Scene!");
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}