如何设置对话框控件Java FX / Java 8的图标

前端之家收集整理的这篇文章主要介绍了如何设置对话框控件Java FX / Java 8的图标前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我可能会缺少一些非常明显的东西,但是我无法找到如何设置对话框组件的图标(ProgressDialog更精确).我知道如何做一个Stage,this.primaryStage.getIcons().add(new Image(getClass().getResourceAsStream(“/ icon / logo.png”)))但是我没有找到Dialog系列的任何东西.不知何故,设置舞台图标不会影响对话框图标.

谢谢

解决方法

Marco Jakob有一个非常好的教程 here,您可以在其中找到不仅如何使用对话框,还可以找到如何解决您的问题.

对于新的对话框(在JDK8u40早期版本中,或者具有JDK 8u25的openjfx-dialogs),或者对于ControlsFX的对话框,为了设置对话框的图标,可以使用此solution

  1. Stage stage = (Stage) dialog.getDialogPane().getScene().getWindow();
  2. stage.getIcons().add(
  3. new Image(this.getClass().getResource("<image>.png").toString()));

代码显示如何使用ControlsFX中的ProgressDialog,并为对话框设置图标:

  1. @Override
  2. public void start(Stage primaryStage) {
  3.  
  4. Service<Void> service = new Service<Void>() {
  5. @Override protected Task<Void> createTask() {
  6. return new Task<Void>() {
  7. @Override protected Void call() throws InterruptedException {
  8. updateMessage("Message . . .");
  9. updateProgress(0,10);
  10. for (int i = 0; i < 10; i++) {
  11. Thread.sleep(300);
  12. updateProgress(i + 1,10);
  13. updateMessage("Progress " + (i + 1) + " of 10");
  14. }
  15. updateMessage("End task");
  16. return null;
  17. }
  18. };
  19. }
  20. };
  21.  
  22. Button btn = new Button("Start Service");
  23. btn.setOnAction(e -> {
  24. ProgressDialog dialog = new ProgressDialog(service);
  25. dialog.setTitle("Progress Dialog");
  26. dialog.setHeaderText("Header message");
  27. Stage stage = (Stage) dialog.getDialogPane().getScene().getWindow();
  28. stage.getIcons().add(new Image(this.getClass().getResource("<image>.png").toString()));
  29. service.start();
  30. });
  31.  
  32. Scene scene = new Scene(new StackPane(btn),300,250);
  33. primaryStage.setScene(scene);
  34. primaryStage.show();
  35. }

猜你在找的Java相关文章