Estou com um projeto em JavaFX. Minha hierarquia de arquivos está assim:
Na pasta view estão meus arquivos fxml. As minhas imagens estão na pasta Resources. No scene builder, não consigo setar uma URL válida para a imagem que quero na pasta resources para o atributo css fx background image. Ex: url(’…/resources/Button-Help-icon.png’). Já tentei de várias formas mas nunca consigo. Pelo URL de uma imagem na internet eu consigo tranquilamente Ex: url(‘http://icons.iconarchive.com/icons/hopstarter/button/32/Button-Help-icon.png’). Mas para minhas próprias imagens, que estão em outra pasta, eu não consigo de forma alguma. OBS: Não estou usando arquivos css, essas estilizações é dentro do próprio SceneBuilder.
usa file no lugar de http
url(‘file:/icons.iconarchive.com/icons/hopstarter/button/32/Button-Help-icon.png');
Tambem se for colocar essa imagem dentro da ImageView coloca no Style
-fx-image
Acho que eu não deixei muito claro, eu não quero usar mais um link que leva na imagem. Eu baixei a imagem e quero setar essa URL para onde está a imagem, que fica em outra pasta do meu projeto.
Nesse caso no fx:id --> cria um nome e dentro do Controller voce altera
o setStyle ou mesmo set nova Image
Obrigado, você poderia dar um exemplo de como ficaria esse código ? Tentei assim e não deu certo:
helpButton.setStyle("-fx-background-image: url('./HelpButton-icon.png');");
Tenta colocar o caminho cheio na url usando o file:/
tenta tambem com -fx-image
Se estiver usando um Button use
helpButton.setStyle("-fx-graphic: url('file:/caminho/HelpButton-icon.png');");
ou
ImageView img = new ImageView( new Image("file:/caminho/HelpButton-icon.png") );
helpButton.setGraphic(img);