Maybe the path of your image ("/isotype.png"
) is incorrect. Choose one method to give correct path from below options. If icon image is stored:
In a folder (e.g. images) then use this path "/images/isotype.png"
as like:
stage.getIcons().add(
new Image(this.getClass().getResourceAsStream("/images/isotype.png")));
In package directory then use this path "isotype.png"
as like:
stage.getIcons().add(new Image(this.getClass().getResourceAsStream("isotype.png")));
In a folder structure then use this path "../images/isotype.png"
as like:
stage.getIcons().add(
new Image(this.getClass().getResourceAsStream("../images/isotype.png"")));
Updated:
You have to take a look at A guide to the Gradle JavaFX Plugin which describes the Javafx packages are complete with cross-platform flair-like start menu integration, dock and tray icons, menu-bar integration, and single click icons. For that you've to Sign your files in the output folder if you plan to distribute the application, stated here in 7.3.5 using signtool.exe.
Now you have to some (icons) configuration options inside of the build.gradle
as:
javafx {
appID 'SampleApp'
appName 'Sample Application'
mainClass 'com.example.sample.Main'
jvmArgs = ['-XX:+AggressiveOpts', '-XX:CompileThreshold=1']
systemProperties = [ 'prism.disableRegionCaching':'true' ]
arguments = ['-l', '--fast']
embedLauncher = false
// deploy/info attributes
category = 'Demos'
copyright = 'Copyright (c) 2013 Acme'
description = 'This is a sample configuration, it is not real.'
licenseType = 'Apache 2.0'
vendor = 'Acme'
installSystemWide = true
menu = true
shortcut = true
// app icons
icons {
shortcut = ['shortcut-16.png', 'shortcut-32.png', 'shortcut-128.png', 'shortcut-256.png', 'shortcut-16@2x.png', 'shortcut-32@2x.png', 'shortcut-128@2x.png']
volume = 'javafx-icon.png'
setup = 'javafx-icon.png'
}
// applet and webstart stuff
debugKey {
alias = 'debugKey'
//keyPass = 'password' // provide via command line
keyStore = file('~/keys/debug.jks')
//storePass = 'password' // provide via command line
}
releaseKey {
alias = 'production'
//keyPass = 'password' // provide via command line
keyStore = file('/Volumes/ProdThumbDrive/production.jks')
//storePass = 'password' // provide via command line
}
signingMode 'release'
width = 800
height = 600
embedJNLP = false
codebase = 'http://example.com/bogus/JNLP/Codebase'
// arbitrary jnlp icons
icon {
href = 'src/main/resources/javafx-icon.png'
kind = 'splash'
width = 128
height = 128
}
icon {
href = 'shortcut-32@2x.png'
kind = 'selected'
width = 16
height = 16
scale = 1
}
}