WindowControllerFx trocar ícone da janela

Olá. Eu estou utilizando a biblioteca do @Andrauss na janela principal do meu projeto. Eu tentei adicionar um ícone de 128x128 na minha janela a partir do onActionShow:

@FXML
void ActionShow() {
    new MainWindow()
            .setTitle("Meus dados")
            .show().setMaximized().setIcon(new Image(getClass().getResourceAsStream("/icons/tray_icon.png")));
}

Mas nenhum erro para encontrar o arquivo foi exibido, e o ícone não está sendo alterado. Alguém tem alguma ideia do que eu fiz de errado?

Olá, use o setIcon antes do show.
E no seu caso seria:
.setIcon(new Image("/icons/tray_icon.png"));

1 curtida

De novo eu me esqueci que não preciso do getClass().getResource() :joy:. Mas não funcionou. E eu também não vi nenhum erro para localizar a imagem.

Cara testei aqui e funcionou, pode ser o caminho dá imagem, sobrescreva o método o show do seu controller e use getWindow ().getIcons().Add(sua imagem)

Não adianta. Mas se tivesse algum erro para encontrar a imagem, eu não deveria receber um IOException ou um NullPointerException?

Nesse caso não é lançada exception pois não há manipulação direta do Image. Fez o que falei? Sobrescreveu o onShow?

1 curtida

Não, eu estava adicionando no onActionShow :joy:. Que falta de atenção. Agora está funcionando:

@Override
public void onShow() {
	getWindow().getIcons().add(new Image("/icons/tray_icon.png"));
}

Valeu de pela ajuda.