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 Ġtree Ġ= ĠJ Tree () ĊĠ Ġval Ġml Ġ= Ġobject Ġ: ĠMouse Adapter () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġmouse Pressed ( e : ĠMouseEvent ) Ġ{ ĊĠĠĠĠĠ Ġ( e . component Ġas ? ĠJ Tree )?. also Ġ{ Ġtree Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( tree . getRow For Location ( e . x , Ġe . y ) Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġtree . clear Selection () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġval Ġcheck Ġ= ĠJ CheckBox (" J Tree # clear Selection : Ġwhen Ġuser Ġclicks Ġempty Ġsurface ") ĊĠ Ġcheck . addActionListener Ġ{ Ġe Ġ-> ĊĠĠĠ Ġif Ġ(( e . source Ġas ? ĠJ CheckBox )?. isSelected Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠ Ġtree . add Mouse Listener ( ml ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġtree . remove Mouse Listener ( ml ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġreturn ĠJPanel ( Border Layout ()). also Ġ{ ĊĠĠĠ Ġit . add ( check , ĠBorderLayout . NORTH ) ĊĠĠĠ Ġit . add ( J ScrollPane ( tree )) ĊĠĠĠ Ġit . preferred Size Ġ= ĠDimension ( 3 2 0 , Ġ 2 4 0 ) ĊĠ Ġ} Ċ } Ċ Ċ 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 ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ