package Ġeditor . visual Ċ Ċ import Ġeditor . backend .* Ċ import Ġeditor .* Ċ import Ġjava . awt . Dimension Ċ import Ġjava . awt . Flow Layout Ċ import Ġjava . awt . event . ActionEvent Ċ import Ġjava . awt . event . Window Adapter Ċ import Ġjava . awt . event . Window Event Ċ import Ġjavax . swing .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠDim a Ġon Ġ 2 2 - Aug - 1 5 . Ċ Ġ* ĠUpdated Ġby ĠF iq i Dev Ġon Ġ 2 9 - J uni - 2 0 1 9 Ċ Ġ* Ċ Ġ*/ Ċ Ċ fun Ġbuild MenuBar (): ĠJ MenuBar Ġ{ ĊĊĊĠĠĠ Ġ// setup Ġicon Ġ- Ġabout ĊĠĠĠ Ġval Ġicon About Application Ġ= ĠImage Icon (" icons / about . png ") ĊĊĠĠĠ Ġ// setup Ġmenu Ġ- Ġabout ĊĠĠĠ Ġval Ġabout Menu Ġ= ĠJ Menu (" About ") ĊĠĠĠ Ġval Ġabout Application Ġ= ĠJ MenuItem (" About ĠApplication ", Ġicon About Application ) ĊĊĠĠĠ Ġabout Menu . add ( about Application ) ĊĊĊĠĠĠ Ġ// About Ġaction Listener ĊĠĠĠ Ġabout Application . addActionListener Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcontent Text : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġtext : ĠJLabel Ġ= ĠJLabel () ĊĊĠĠĠĠĠĠĠ Ġval Ġpanel About Application Ġ= ĠJPanel ( Flow Layout ()) ĊĠĠĠĠĠĠĠ Ġpanel About Application . border Ġ= ĠBorder Factory . create Empty Border ( 8 , Ġ 8 , Ġ 8 , Ġ 8 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġabout Application Frame Ġ= ĠJ Frame () ĊĠĠĠĠĠĠĠ Ġabout Application Frame . add WindowListener ( object Ġ: ĠWindow Adapter () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġwindow Closing ( e : ĠWindow Event ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġabout Application Frame . dispose () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġabout Application Frame . setSize ( 5 0 0 , Ġ 3 0 0 ) ĊĠĠĠĠĠĠĠ Ġabout Application Frame . setLocation Relative To ( frame ) ĊĊĠĠĠĠĠĠĠ Ġabout Application Frame . title Ġ= Ġ" About Ġthis ĠApplication Ġ- Ġ${ frame . title }" ĊĊĠĠĠĠĠĠĠ Ġcontent Text Ġ= Ġ"< html >< body >< p >" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Name : Ġ" Ġ+ Ġframe . title Ġ+ Ġ"< br Ġ/> " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Version : Ġ 1 . 0 " Ġ+ Ġ"< br Ġ/> " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Developer : ĠF iq i Dev " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"</ p ></ body ></ html >" ĊĊĠĠĠĠĠĠĠ Ġtext . text Ġ= Ġcontent Text ĊĠĠĠĠĠĠĠ Ġpanel About Application . add ( text ) ĊĠĠĠĠĠĠĠ Ġabout Application Frame . add ( panel About Application ) ĊĊĠĠĠĠĠĠĠ Ġabout Application Frame . isVisible Ġ= Ġtrue ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġval Ġbar Ġ= ĠJ MenuBar () ĊĠĠĠ Ġbar . add ( setup Menu (" File ", Ġmap Of (" New " Ġto Ġ:: new File , Ġ" Open " Ġto Ġ:: open File , Ġ" Save " Ġto Ġ:: save File ))) ĊĠĠĠ Ġbar . add ( setup Menu (" Build ", Ġmap Of (" Build Ġ& ĠRestart " Ġto Ġ:: build Restart ))) ĊĠĠĠ Ġbar . add ( setup Menu (" Syntax ", Ġmap Of (" Java " Ġto Ġ:: java Syntax , Ġ" Kotlin " Ġto Ġ:: kotlin Syntax ))) ĊĠĠĠ Ġbar . add ( about Menu ) ĊĠĠĠ Ġreturn Ġbar Ċ } ĊĊĊ Ċ private Ġfun Ġsetup Menu ( name : ĠString , Ġmap : ĠMap < String , Ġ() Ġ-> ĠUnit >): ĠJ Menu Ġ{ ĊĠĠĠ Ġval Ġmenu Ġ= ĠJ Menu ( name ) ĊĠĠĠ Ġfor Ġ( e Ġin Ġmap ) ĊĠĠĠĠĠĠĠ Ġmenu . add ( setup Button ( e . key , Ġe . value )) ĊĠĠĠ Ġreturn Ġmenu Ċ } Ċ Ċ private Ġfun Ġsetup Button ( name : ĠString , Ġfunc : Ġ() Ġ-> ĠUnit ): ĠJ MenuItem Ġ{ ĊĠĠĠ Ġval Ġbutton Ġ= ĠJ MenuItem ( name ) ĊĠĠĠ Ġbutton . preferred Size Ġ= ĠDimension ( 2 0 0 , Ġ 2 5 ) ĊĠĠĠ Ġbutton . addActionListener ({ Ġe : ĠAction Event Ġ-> ĊĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e . source Ġ== Ġbutton ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfunc () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĠĠĠ Ġreturn Ġbutton Ċ }