答案 0 :(得分:6)
除了@Zephyr所提到的内容之外,如果要在屏幕快照中所指的位置设置自己的自定义图标/图形,请使用javafx.scene.control.Dialog
类的setGraphic()方法。
在以下代码中,尽管alertType为INFORMATION,但它将使用提供的图形节点覆盖预定义的图标。
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("My Title");
alert.setContentText("My Content text");
alert.setHeaderText("My Header");
alert.setGraphic(new Button("My Graphic"));
alert.show();
答案 1 :(得分:6)
您有两种选择。
首先,Alert
类在创建警报时接受一个AlertType
参数。有5个内置选项可供选择,每个选项都有其自己的图标:
INFORMATION
,CONFIRMATION
,WARNING
,ERROR
和NONE
(根本不提供图标)。
在创建Alert
时,可以通过将AlertType
传递给构造函数来选择以下图标之一:
Alert alert = new Alert(AlertType.ERROR);
但是,如果要提供自己的图标图像,可以通过访问dialogPane
的{{1}}并设置Alert
属性来实现:
graphic
下面是一个简单的应用程序,演示了如何为alert.getDialogPane().setGraphic(new ImageView("your_icon.png"));
使用自定义图标图像:
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();
}
}
:
注意:正如Sai Dandem的同样有效的答案所示,您并不仅限于使用Alert
作为图形。 ImageView
方法接受任何setGraphic()
对象,因此您可以轻松地传递Node
,Button
或其他UI组件。