JavaFX é uma plataforma java para desenvolver aplicações com interfaces ricas , sendo uma ótima para opção para aplicações desktop modernas.
Atualmente o JavaFX é administrado pelo https://openjfx.io/ , mas até a versão 8 do java as bibliotecas javaFX vinham integradas no jdk do java da Oracle.
Com java na versão 21 , podemos fazer o download no site da azul do open jdk FX , que vem com as bibliotecas FX. Segue o link : https://www.azul.com/downloads/?version=java-21-lts&package=jdk-fx#zulu
Aqui um exemplo de código para exibir um modal com uma imagem e uma descrição para o usuário:
Image image = new Image("imagem.jpg");
//Aqui adicionamos um scroll pane para permitir a rolagem da imagem/texto caso o tamanho ultrapasse os limites da tela
ScrollPane scrollpane = new ScrollPane();
final ImageView imageNode = new ImageView();
imageNode.setImage(image);
Text descricao = new Text("Aqui está a imagem!");
descricao.setWrappingWidth(image.getWidth());
VBox vbox = new VBox(imageNode,descricao);
scrollpane.setContent(vbox);
//Aqui setamos a largura baseado na largura da imagem e a altura do modal pegando a altura do Stage (Tela principal) da aplicação dimuindo 100 px para ficar ajustado
Scene scene = new Scene(scrollpane, image.getWidth(), MainStage.getInstance().getStage().getHeight()-100);
Stage modalImagem = new Stage();
modalImagem.setScene(scene);
modalImagem.setResizable(false); // Case não queira permitir o usuário redimensionar ou maximizar a tela.
modalImagem.show();
Esse foi um pequeno exemplo de código utilizando java e javaFX , uma infinidade de recursos estão disponíveis para criar aplicações com interfaces gráficas utilizando a plataforma javaFX.