java - Image embedded on button wont show -


i trying create button embedded image 48 x 48 appearing on left hand side apparently doing incorrectly because keep getting 3 .so question how can image display? here have.

    image buttonicon = new image("c:/users/emanu_000/documents/excersise4/src/my-profile-icon.png");     imageview iconview = new imageview(buttonicon);      getpicbutton = new button("get picture",iconview);     getpicbutton.setcontentdisplay(contentdisplay.left);     mainpane.setconstraints(getpicbutton, 1, 3);     mainpane.getchildren().add(getpicbutton); 

this stack trace

exception in application start method exception in thread "main" java.lang.runtimeexception: exception in        application start method @       com.sun.javafx.application.launcherimpl.launchapplication1(launcherimpl.java:917) @ com.sun.javafx.application.launcherimpl.lambda$launchapplication$152(launcherimpl.java:182) @ com.sun.javafx.application.launcherimpl$$lambda$2/2093176254.run(unknown source) @ java.lang.thread.run(thread.java:745) caused by: java.lang.illegalargumentexception: invalid url: unknown  protocol: c  @ javafx.scene.image.image.validateurl(image.java:1102) @ javafx.scene.image.image.<init>(image.java:608) @ com.company.main.start(main.java:134) @ com.sun.javafx.application.launcherimpl.lambda$launchapplication1$159(launcherimpl.java:863) @ com.sun.javafx.application.launcherimpl$$lambda$52/135888596.run(unknown source) @ com.sun.javafx.application.platformimpl.lambda$runandwait$172(platformimpl.java:326) @ com.sun.javafx.application.platformimpl$$lambda$47/1904663592.run(unknown source) @ com.sun.javafx.application.platformimpl.lambda$null$170(platformimpl.java:295) @ com.sun.javafx.application.platformimpl$$lambda$50/1835699047.run(unknown source) @ java.security.accesscontroller.doprivileged(native method) @ com.sun.javafx.application.platformimpl.lambda$runlater$171(platformimpl.java:294) @ com.sun.javafx.application.platformimpl$$lambda$49/2102390814.run(unknown source) @ com.sun.glass.ui.invokelaterdispatcher$future.run(invokelaterdispatcher.java:95) @ com.sun.glass.ui.win.winapplication._runloop(native method) @ com.sun.glass.ui.win.winapplication.lambda$null$145(winapplication.java:101) @ com.sun.glass.ui.win.winapplication$$lambda$38/216334026.run(unknown source) ... 1 more caused by: java.net.malformedurlexception: unknown protocol: c @ java.net.url.<init>(url.java:593) @ java.net.url.<init>(url.java:483) @ java.net.url.<init>(url.java:432) @ javafx.scene.image.image.validateurl(image.java:1096) ... 16 more 

according javadocs image, parameter pass is

the string representing url use in fetching pixel data

i.e. need url here, not file system path.

you can do

file file = new file("c:/users/emanu_000/documents/excersise4/src/my-profile-icon.png"); url url = file.touri().tourl(); image image = new image(url.toexternalform()); 

(and think, more simply, new image(file.touri().tostring()) works too).