Estou utilizando o Gluon Scene Builder para construir minha interface, entretanto, ao executar o projeto, o mesmo apresenta um visual diferente.
Pergunta adicional: Compensa investir em JavaFX, mesmo com sua descontinuação tendo sido anunciada ?
Os códigos abaixo:
FXMLDocument.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.PasswordField?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Font?>
FXMLDocumentController
package fxlaunchercr;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
public class FXMLDocumentController implements Initializable {
@FXML
private Label label;
@FXML
private ResourceBundle resources;
@FXML
private URL location;
@FXML
private void handleButtonAction(ActionEvent event) {
System.out.println("You clicked me!");
label.setText("Hello World!");
}
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
}
FXLauncher.java (main)
package fxlaunchercr;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
public class FXLauncherCR extends Application {
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("FXMLDocument.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Não compensa usar JavaFx, por n motivos poucos adotaram no mercado. A própria Oracle abandonou a distribuição do JavaFx, agora ficando mais nas mãos dessa Gluon e comunidade. Se quer usar Java desktop, usa Swing, que apesar de ser uma tecnologia antiga, estará coberto por mais materiais, soluções, etc.
O Swing achei bem chatinho de usar. O Java FX achei até mais interessante, e foi algo que me fez ter interesse em Java. Eu adorei o conceito de integração com CSS e achei, em partes, mais fácil de usar.
Também acho chato Swing, mas a realidade do Java desktop é essa. Se teu cliente usa Windows, C# com Windows Forms (ou WPF pra quem gosta) é bem mais prático.
Conhece alguma coisa para deixar o Swing mais customizável ? Alguma biblioteca ou algo do tipo ?
O swing é antigo mas ainda é muito bom. Se tiver criatividade, você consegue fazer o que quiser.
Eu nunca curti os Look’n Feels customizadas. Costumo usar sempre o padrão do Windows mesmo.
Segue dois projetos meus, feitos em Java Swing.
Muito bonito mesmo, com criatividade o céu é o limite.
Como não tenho esse lado criativo, se estivesse usando Java também ia preferir o estilo padrão do Windows, do que algo customizado. Para o que atendo (somente Windows) WindowsForms é infinitamente mais produtivo e fiél ao Windows. Obviamente não atende a minoria das empresas que usam Linux no desktop.
1 curtida
Onde exatamente você viu que javaFX esta sendo descontinuado ?
Em relação se compensa usar javaFX, sim compensa, por varias razões, mas a principal é ser mais moderno. ter Aceleração de hardware, Browser, interface rica, velocidade e tantas outras delicias que farão você se lambuzar com ele.
E outra, não é obrigatorio desenvolver em javaFX usando FXML.
E os temas, tem varios, mas você pode usar css e deixar da forma que desejar.
Swing é bom, mas não é melhor que javaFX tecnicamente falando.
A vantagem do Swing é ser 100% puro java ao passo que o javaFX usa algumas bibliotecas nativas de terceiros, como WebKit para browser, ou as de midia, então não tem ainda javaFX para Solaris por exemplo, mas por ser open em breve terá.
A curva de aprendizado entre Swing e javaFX é minima, quem programa Java com um pouco de boa vontade, migra de um para outro sem dificuldade alguma, e o resultado final compensa.
Retirado da distribuição do jdk não significa descontinuado.
javaFX esta independente da distribuição do jdk.e é open e ficou melhor, assim não precisa esperar por novas versões da jdk para correção de bug ou mesmo melhoria.
https://openjfx.io/
1 curtida
O Swing é extremamente customizável e ele utiliza MVC ao extremo. 
Mas você precisa conhecer a API das classes dele e saber implementar os Models dos componentes.
Se não souber fazer isso, vai fazer uma aplicação desktop com pouca usabilidade e bastante lenta. 