利用JavaFx开发RIA桌面应用-改变stage的标题栏的图标

转载请注明来源-作者@loongshawn:http://blog.csdn.net/loongshawn/article/details/52954903

1.背景

想给软件添加一个图标,同时软件的窗体是可变动的,接下来就介绍下给可变动窗体添加图标方式。

2.操作

添加图标的操作是很简单的,只需给start方法里面的stage新增一个属性即可:

@Override
public void start(Stage primaryStage){

   Group root = new Group();
   Scene scene = new Scene(root,Constant.SOFTWARE_INITIAL_LENGTH,Constant.SOFTWARE_INITIAL_WIDTH, Color.WHITE);

   primaryStage.setTitle(Constant.SOFTWARE_TITLE);  
   primaryStage.getIcons().add(ImageUtil.getImage("/image/tools.png"));
   primaryStage.setScene(scene);
   primaryStage.show();
}

如上,仅添加primaryStage.getIcons().add(ImageUtil.getImage(“/image/tools.png”));这行代码即可。

主要利用了两个方法,一个是stage自己的getIcons()方法,如下:

利用JavaFx开发RIA桌面应用-改变stage的标题栏的图标_第1张图片

另一个是ObservableList接口的实现方法add(Image image):

利用JavaFx开发RIA桌面应用-改变stage的标题栏的图标_第2张图片

展示效果如下,软件标题栏中多了一个图标:

利用JavaFx开发RIA桌面应用-改变stage的标题栏的图标_第3张图片

通常通过添加如上方法即可完成图标添加,倘若你出现了变化窗体大小图标消失的情况请接着往下看,若没有则忽略,如下:

利用JavaFx开发RIA桌面应用-改变stage的标题栏的图标_第4张图片

这种情况应该如何处理呢?我尝试可行的方法为给这个stage添加窗体大小监听器,新建监听器类:

public class StageChangeListener implements ChangeListener<Number> {

    Stage stage;

    public StageChangeListener(Stage stage){
        this.stage = stage;
    }

    public void changed(ObservableValue observable, Number oldValue, Number newValue) {

        stage.getIcons().add(ImageUtil.getImage("/image/tools.png"));
    }
}

给stage添加监听:

primaryStage.widthProperty().addListener(new StageChangeListener(primaryStage));

添加监听后,运行软件,改变窗体大小,图标显示正常。

利用JavaFx开发RIA桌面应用-改变stage的标题栏的图标_第5张图片

相关文章:

  • 《 利用JavaFx开发RIA桌面应用-TableView操作》
  • 《 利用JavaFx开发RIA桌面应用-Clipboard剪贴板操作》
  • 《利用JavaFx开发RIA桌面应用-TextField替换PasswordField做密码框》
  • 《利用JavaFx开发RIA桌面应用-半透明界面设计》
  • 《利用JavaFx开发RIA桌面应用-加载等待界面设计》
  • 《利用JavaFx开发RIA桌面应用-文件拖拽》
  • 《利用JavaFx开发RIA桌面应用-改变stage的标题栏的图标》
  • 《利用JavaFx开发RIA桌面应用-事件监听》
  • 《利用JavaFx开发RIA桌面应用-ComboBox组合编辑框水平增长》
  • 《利用JavaFx开发RIA桌面应用-布局说明》
  • 《利用JavaFx开发RIA桌面应用-在线资料》

你可能感兴趣的:(JavaFX)