package Ġexample Ċ Ċ import Ġjava . awt .* Ġ// Ġk tl int - disable Ġno - wildcard - imports Ċ import Ġjava . awt . geom . Affine Transform Ċ import Ġjava . awt . image . Buffered Image Ċ import Ġjavax . swing .* Ġ// Ġk tl int - disable Ġno - wildcard - imports Ċ Ċ private Ġval Ġp Ġ= ĠJPanel () Ċ Ċ private Ġfun Ġmake Vertical Tab Icon ( title : ĠString ?, Ġicon : ĠIcon , Ġclock wise : ĠBoolean ): ĠIcon ? Ġ{ ĊĠ Ġval Ġlabel Ġ= ĠJLabel ( title , Ġicon , ĠSw ing Constants . LEADING ) ĊĠ Ġlabel . border Ġ= ĠBorder Factory . create Empty Border ( 0 , Ġ 2 , Ġ 0 , Ġ 2 ) ĊĠ Ġval Ġd Ġ= Ġlabel . preferred Size ĊĠ Ġval Ġw Ġ= Ġd . height ĊĠ Ġval Ġh Ġ= Ġd . width ĊĠ Ġval Ġbi Ġ= ĠBufferedImage ( w , Ġh , ĠBufferedImage . TYPE _ INT _ ARGB ) ĊĠ Ġval Ġg 2 Ġ= Ġbi . graphics Ġas ? ĠGraphics 2 D Ġ?: Ġreturn Ġnull ĊĠ Ġval Ġat Ġ= Ġif Ġ( clock wise ) Ġ{ ĊĠĠĠ ĠAff ine Transform . get Translate Instance ( w . toDouble (), Ġ 0 . 0 ) ĊĠ Ġ} Ġelse Ġ{ ĊĠĠĠ ĠAff ine Transform . get Translate Instance ( 0 . 0 , Ġh . toDouble ()) ĊĠ Ġ} ĊĠ Ġat . quadr ant Rotate ( if Ġ( clock wise ) Ġ 1 Ġelse Ġ- 1 ) ĊĠ Ġg 2 . transform Ġ= Ġat ĊĠ ĠSw ing Utilities . paint Component ( g 2 , Ġlabel , Ġp , Ġ 0 , Ġ 0 , Ġd . width , Ġd . height ) ĊĠ Ġg 2 . dispose () ĊĠ Ġreturn ĠImage Icon ( bi ) Ċ } Ċ Ċ fun Ġmake UI (): ĠComponent Ġ{ ĊĠ Ġval Ġtabs 1 Ġ= ĠJ Tabbed Pane ( Swing Constants . LEFT ) ĊĠ Ġval Ġtabs 2 Ġ= ĠJ Tabbed Pane ( Swing Constants . RIGHT ) ĊĠ ĠlistOf (" computer ", Ġ" directory ", Ġ" file "). forEach Ġ{ ĊĠĠĠ Ġval Ġicon Ġ= ĠUI Manager . get Icon (" File View .${ it } Icon ") ĊĠĠĠ Ġval Ġc 1 Ġ= ĠJLabel ( it , Ġicon , ĠSw ing Constants . LEADING ) ĊĠĠĠ Ġtabs 1 . add Tab ( null , Ġmake Vertical Tab Icon ( it , Ġicon , Ġfalse ), Ġc 1 ) ĊĠĠĠ Ġval Ġc 2 Ġ= ĠJLabel ( it , Ġicon , ĠSw ing Constants . CENTER ) ĊĠĠĠ Ġtabs 2 . add Tab ( null , Ġmake Vertical Tab Icon ( it , Ġicon , Ġtrue ), Ġc 2 ) ĊĠ Ġ} ĊĠ Ġval Ġsp Ġ= ĠJ Split Pane () ĊĠ Ġsp . resize Weight Ġ= Ġ. 5 ĊĠ Ġsp . left Component Ġ= Ġtabs 1 ĊĠ Ġsp . right Component Ġ= Ġtabs 2 ĊĠ Ġsp . preferred Size Ġ= ĠDimension ( 3 2 0 , Ġ 2 4 0 ) ĊĠ Ġreturn Ġsp Ċ } Ċ Ċ 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 ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ