package Ġexample Ċ Ċ import Ġjava . awt .* Ġ// Ġk tl int - disable Ġno - wildcard - imports Ċ import Ġjava . awt . event . Mouse Adapter Ċ import Ġjava . awt . event . MouseEvent Ċ import Ġjavax . swing .* Ġ// Ġk tl int - disable Ġno - wildcard - imports Ċ Ċ fun Ġmake UI (): ĠComponent Ġ{ ĊĠ Ġval Ġcheck Ġ= ĠJ CheckBox (" J Menu : Ġhover ( show Ġpopup Ġautomatically ) Ġon Ġcursor ", Ġtrue ) ĊĠ Ġval Ġhandler Ġ= Ġobject Ġ: ĠMouse Adapter () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġmouse Pressed ( e : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( check . isSelected ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( e . component Ġas ? ĠAbstract Button )?. do Click () ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmouse Entered ( e : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠ Ġif Ġ( check . isSelected ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( e . component Ġas ? ĠAbstract Button )?. do Click () ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĠ Ġval Ġmenu Bar Ġ= Ġmake MenuBar () ĊĠ Ġmenu Bar . sub Elements ĊĠĠĠ Ġ. filter Is Instance < J Menu >() ĊĠĠĠ Ġ. forEach Ġ{ Ġit . add Mouse Listener ( handler ) Ġ} ĊĊĠ Ġval Ġp Ġ= ĠJPanel ( Border Layout ()). also Ġ{ ĊĠĠĠ Ġit . add ( check , ĠBorderLayout . SO UTH ) ĊĠĠĠ Ġit . preferred Size Ġ= ĠDimension ( 3 2 0 , Ġ 2 4 0 ) ĊĠ Ġ} ĊĠ ĠEvent Queue . invoke Later Ġ{ Ġp . root Pane . j MenuBar Ġ= Ġmenu Bar Ġ} ĊĠ Ġreturn Ġp Ċ } Ċ Ċ private Ġfun Ġmake MenuBar () Ġ= ĠJ MenuBar (). also Ġ{ ĊĠ Ġit . add ( J Menu (" File ")). also Ġ{ Ġmenu Ġ-> ĊĠĠĠ Ġmenu . add (" Open ") ĊĠĠĠ Ġmenu . add (" Save ") ĊĠĠĠ Ġmenu . add (" Exit ") ĊĠ Ġ} ĊĊĠ Ġit . add ( J Menu (" Edit ")). also Ġ{ Ġmenu Ġ-> ĊĠĠĠ Ġmenu . add (" Undo ") ĊĠĠĠ Ġmenu . add (" Redo ") ĊĠĠĠ Ġmenu . add Separator () ĊĠĠĠ Ġmenu . add (" Cut ") ĊĠĠĠ Ġmenu . add (" Copy ") ĊĠĠĠ Ġmenu . add (" Paste ") ĊĠĠĠ Ġmenu . add (" Delete ") ĊĠ Ġ} ĊĊĠ Ġit . add ( J Menu (" Test ")). also Ġ{ Ġmenu Ġ-> ĊĠĠĠ Ġmenu . add (" J MenuItem 1 ") ĊĠĠĠ Ġmenu . add (" J MenuItem 2 ") ĊĠĠĠ Ġval Ġm 1 Ġ= ĠJ Menu (" J Menu "). also Ġ{ Ġsub Ġ-> ĊĠĠĠĠĠ Ġsub . add (" J MenuItem 4 ") ĊĠĠĠĠĠ Ġsub . add (" J MenuItem 5 ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġmenu . add ( m 1 ) ĊĠĠĠ Ġmenu . add (" J MenuItem 3 ") ĊĠ Ġ} Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠ ĠEvent Queue . invoke Later Ġ{ ĊĠĠĠ Ġrun Catch ing Ġ{ ĊĠĠĠĠĠ ĠUI Manager . set Look And Feel ( UI Manager . getSystem Look And Feel ClassName ()) ĊĠĠĠ Ġ}. on Failure Ġ{ ĊĠĠĠĠĠ Ġit . printStackTrace () ĊĠĠĠĠĠ ĠToolkit . getDefault Toolkit (). be ep () ĊĠĠĠ Ġ} ĊĠĠĠ ĠJ Frame (). apply Ġ{ ĊĠĠĠĠĠ Ġdefault Close Operation Ġ= ĠWindow Constants . EXIT _ ON _ CLOSE ĊĠĠĠĠĠ Ġcontent Pane . add ( make UI ()) ĊĠĠĠĠĠ Ġpack () ĊĠĠĠĠĠ Ġset Location Relative To ( null ) ĊĠĠĠĠĠ Ġis Visible Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ