Como posso alterar o ícone de um diálogo Alerta?

shehan96:

Eu quero mudar seguinte ícone padrão de uma mensagem de alerta. Como eu posso fazer isso?

Isto é o que eu quero a mudança:

Capturas de tela

Eu quero mudar o ícone. Isso significa que eu quero mudar isso ícone azul para outra coisa. Não mudar alret tipo

Zephyr:

Você tem algumas opções.

Em primeiro lugar, a Alertclasse aceita um AlertTypeparâmetro ao criar o alerta. Há 5 built-in opções para escolher, cada um com o seu próprio ícone:

INFORMATION, CONFIRMATION, WARNING, ERROR, E NONE(que fornece nenhum ícone em tudo).

Você pode selecionar um destes ícones ao criar o Alert, passando o AlertTypepara o construtor:

Alert alert = new Alert(AlertType.ERROR);

ERRO imagem


Se, no entanto, você quer fornecer sua própria imagem ícone, você pode fazê-lo acessando o dialogPanedo Alerte definindo a graphicpropriedade:

alert.getDialogPane().setGraphic(new ImageView("your_icon.png"));

Abaixo está uma aplicação simples que demonstra como usar uma imagem de ícone personalizado para a Alert:

import javafx.application.Application;
import javafx.scene.control.Alert;
import javafx.scene.image.ImageView;
import javafx.stage.Stage;

public class Main extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {

        // Build the Alert
        Alert alert = new Alert(Alert.AlertType.ERROR);
        alert.setTitle("Alert Test");
        alert.setHeaderText("This uses a custom icon!");

        // Create the ImageView we want to use for the icon
        ImageView icon = new ImageView("your_icon.png");

        // The standard Alert icon size is 48x48, so let's resize our icon to match
        icon.setFitHeight(48);
        icon.setFitWidth(48);

        // Set our new ImageView as the alert's icon
        alert.getDialogPane().setGraphic(icon);
        alert.show();
    }
}

E o resultado Alert:

Personalizado Alerta Ícone


Nota: Como resposta igualmente válido de Sai Dandem ilustra, você não está restrito a utilizar um ImageViewpara o gráfico. O setGraphic()método aceita qualquer Nodeobjeto, de modo que você poderia facilmente passar um Button, Hyperlinkou outro componente UI.

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=196653&siteId=1
Recomendado
Clasificación