sábado, 30 de dezembro de 2017

Java FX - Primeira aplicação

Olá a todos, hoje trago um tutorial introdutório de JavaFX, abordando como usar JavaFx na IDE Eclipse sem o uso de plugin por ora. Necessitaremos que você tenha instalado em seu ambiente:

JDK do Java 1.8.x
Eclipse Oxygen

Vamos ao primeiros passos no Eclipse (No netbeans é equivalente).

Primeiro crie um novo projeto Java com ctrl + n ou como na imagem a seguir.



Certifique que está selecionando um projeto Java.




Em seguida, vamos nomear o nosso projeto e escolher a JRE instalada.



Após isso, crie uma nova classe a qual onde desenvolveremos o nosso código.



Nomeie a classe conforme ilustra a imagem, e marque a checkbox public static void main() (método principal de nossa aplicação).



Essa será a cara de nossa classe.


Para que ela seja uma classe de aplicação JavaFX, temos que adicionar extends Application , logo após o nome da classe e fazer a importação desta classe Application.


Note que aparecerá um erro. Quando uma classe extende de Application, a mesma necessita herdar método abstrado da Application, O eclipse lhe auxiliará em consertar este erro, Clique em add unimplemented method.


Em seguida vamos ter o método start(Stage primaryStage), esté método preparará o palco para as nossas futuras cenas, este palco é a "borda" de todos os programas que temos em nosso computador, inclusive deste navegador, e cada Sistema operacional tem suas categorias peculiares.




Agora sim vamos criar nosso código, mas antes, explicarei em tópico oque cada um é:


  • AnchorPane : É um Node, onde ficarão contidos (De forma "ancorada") todos os demais Nodes. Seu método .prefSize(), recebem dois parâmetros (X e Y) para definir sua área .
  • TextField : Um Node o qual recebe textos e também há a possibilidade de setar textos no mesmo com o .getText e .setText.
  • Lable : Node o qual serve de texto fixo.
  • Button: Como o próprio nome já diz, é um Node do tipo Botão o qual executa ações. Seu método setOnAction comprova isso, criamos um Handle, onde será disparado quando o mesmo for clicado e fará uma ação.
  • VBox : É um Node do tipo container, onde ele alinha dodos seus Nodes internos na Vertical, daí seu nome.
  • Scene : Como introduzido, o JavaFX é semelhante a uma peça de teatro, onde temos o palco (Stage), os atos(Action), os atores (TextField, Buttons, Labels ... ) e também, temos a Cena (Scene), é o local onde ocorrerá oque o usuário deseja.



import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class AppBlogFX extends Application { public static void main(String[] args) { launch(); } @Override public void start(Stage primaryStage) throws Exception { AnchorPane root = new AnchorPane(); root.setPrefSize(400, 400); TextField tfMensagem = new TextField(); tfMensagem.setPromptText("Digite sua mensagem aqui!"); Label lblMensagem = new Label(); Button btnAction = new Button("Aperte"); btnAction.setOnAction(new EventHandler() { @Override public void handle(ActionEvent event) { if(tfMensagem.getText().isEmpty()) { lblMensagem.setText("Digite uma mensagem!"); } else { lblMensagem.setText(tfMensagem.getText()); } } }); VBox vb = new VBox(tfMensagem, btnAction, lblMensagem); vb.setLayoutX(100); vb.setLayoutY(200); root.getChildren().add(vb); Scene cena = new Scene(root); primaryStage.setScene(cena); primaryStage.show(); } }