package Ġcom . github . hol ger brand l . kr avis . java fx Ċ Ċ import Ġcom . github . hol ger brand l . kr avis . Static HTML Renderer Ċ import Ġjavafx . application . Platform Ċ import Ġjavafx . embed . swing . J FX Panel Ċ import Ġjavafx . scene . web . WebView Ċ import Ġjavafx . stage . Stage Ċ import Ġt orn ad of x . addChild If Possible Ċ import Ġjava . util . concurrent . Callable Ċ import Ġjava . util . concurrent . Future Task Ċ Ċ class ĠWindow Ġ{ ĊĊĠĠĠ Ġ// Ġ ĠPlatform . implicit Exit Ġ= Ġfalse ĊĊĠĠĠ Ġval Ġjs Errors Ġ= ĠlistOf < String >(). to Mutable List () ĊĠĠĠ Ġval ĠwebView Ġ= ĠWebView () ĊĊĠĠĠ Ġprivate Ġval Ġweb Engine Ġ= ĠwebView . engine ĊĊĊĠĠĠ Ġval Ġstage Ġ= ĠStage (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ" V eg as " ĊĠĠĠĠĠĠĠ Ġwidth Ġ= Ġ 3 0 0 . 0 ĊĠĠĠĠĠĠĠ Ġheight Ġ= Ġ 3 0 0 . 0 ĊĊĠĠĠĠĠĠĠ Ġadd Child If Possible ( web View ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġadd Child If Possible ( webview Ġ{ Ġ Ġ}) Ġ// Ġworks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= ĠwebView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġweb Engine . load Content ("< html > hello , Ġworld </ html >", Ġ" text / html ") ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġhtml ( spec Json : ĠString ) Ġ= ĠStatic HTML Renderer ( spec Json ). page HTML () ĊĊĠĠĠ Ġfun Ġclose () Ġ= Ġstage . close () ĊĊĠĠĠ Ġfun Ġload ( spec Json : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġweb Engine . load Content ( html ( spec Json )) ĊĠĠĠĠĠĠĠ Ġweb Engine . load Content ("< html > hello , Ġworld </ html >", Ġ" text / html ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠLog ĠJS Ġerrors ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ ĠWeb Console Listener . setDefault Listener ( ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠWeb Console Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmessage Added ( web View : Ġjavafx . scene . web . WebView , Ġmessage : ĠString , ĠlineNumber : ĠInt , Ġsource Id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( message . contains (" Error ")) Ġjs Errors . add ( message ) ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( js Errors ) ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠPlatform . run Later Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ Ġstage . width = 4 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠ Ġstage . height = 4 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstage . show And Wait () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ val Ġinit Ġby Ġlazy Ġ{ ĊĠĠĠ ĠJ FX Panel () Ċ } Ċ Ċ class ĠWindow Renderer ( val Ġspec Json : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġwindow Ġby Ġlazy Ġ{ ĠWindow () Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// https :// stackoverflow . com / questions / 3 7 9 3 1 6 7 0 / whats - the - e quivalent - of - j panel - in - java fx ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġinit Ġ= ĠJ FX Panel () ĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġinit . scene ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġshow () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit ĊĠĠĠĠĠĠĠ Ġon UIT hread Ġ{ Ġwindow . load ( spec Json ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġerrors () Ġ= Ġon UIT hread Ġ{ Ġwindow . js Errors Ġ} ĊĊĠĠĠ Ġfun Ġclose () Ġ= Ġon UIT hread Ġ{ Ġwindow . close () Ġ} Ċ Ċ } Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġval Ġwindow Renderer Ġ= ĠWindow Renderer (" [] ") ĊĠĠĠ Ġwindow Renderer . show () ĊĊĠĠĠ ĠThread . sleep ( 1 0 0 0 0 ) ĊĊĠĠĠ Ġ// ĠĠĠ Ġwindow Renderer . () Ċ Ċ } ĊĊ Ċ internal Ġfun Ġ< T > Ġon UIT hread ( op : Ġ() Ġ-> ĠT ): ĠT Ġ= Ġif Ġ( Platform . is Fx Application Thread ()) Ġ{ ĊĠĠĠ Ġop () Ċ } Ġelse Ġ{ ĊĠĠĠ Ġval Ġfuture Task Ġ= ĠFuture Task ( Callable < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġon UIT hread ( op ) ĊĠĠĠ Ġ}) ĊĠĠĠ ĠPlatform . run Later ( future Task ) ĊĠĠĠ Ġfuture Task . get () Ċ }