package Ġexample Ċ Ċ import Ġjava . awt .* Ġ// Ġk tl int - disable Ġno - wildcard - imports Ċ import Ġjavax . swing .* Ġ// Ġk tl int - disable Ġno - wildcard - imports Ċ import Ġjavax . swing . pl af . metal . Metal CheckBox Icon Ċ Ċ fun Ġmake UI (): ĠComponent Ġ{ ĊĠ Ġval Ġcb 1 Ġ= ĠJ CheckBox (" 1 1 1 1 1 1 ") ĊĠ Ġcb 1 . icon Ġ= ĠCheckBox Icon () ĊĠ Ġval Ġcb 2 Ġ= ĠJ CheckBox (" 2 2 2 2 2 2 2 2 2 2 2 2 ") ĊĠ Ġcb 2 . icon Ġ= ĠCheckBox Icon 2 () ĊĠ Ġval Ġcb 3 Ġ= ĠJ CheckBox (" 3 3 3 3 3 3 3 3 3 ") ĊĠ Ġcb 3 . icon Ġ= ĠCheckBox Icon 3 () ĊĠ Ġval Ġbox Ġ= ĠBox . create Vertical Box () ĊĠ Ġbox . add ( make Title d Panel (" Default ", ĠJ CheckBox (" 0 0 0 0 0 0 0 0 0 "))) ĊĠ Ġbox . add ( make Title d Panel (" Windows Icon Factory ", Ġcb 1 )) ĊĠ Ġbox . add ( make Title d Panel (" CheckBox . icon + RED ", Ġcb 2 )) ĊĠ Ġbox . add ( make Title d Panel (" Metal CheckBox Icon + GRAY ", Ġcb 3 )) ĊĠ Ġreturn ĠJPanel ( Border Layout ()). also Ġ{ ĊĠĠĠ Ġit . add ( box , ĠBorderLayout . NORTH ) ĊĠĠĠ Ġit . border Ġ= ĠBorder Factory . create Empty Border ( 5 , Ġ 5 , Ġ 5 , Ġ 5 ) ĊĠĠĠ Ġit . preferred Size Ġ= ĠDimension ( 3 2 0 , Ġ 2 4 0 ) ĊĠ Ġ} Ċ } Ċ Ċ private Ġfun Ġmake Title d Panel ( title : ĠString , Ġc : ĠComponent ): ĠComponent Ġ{ ĊĠ Ġval Ġp Ġ= ĠJPanel ( Border Layout ()) ĊĠ Ġp . border Ġ= ĠBorder Factory . create Title d Border ( title ) ĊĠ Ġp . add ( c ) ĊĠ Ġreturn Ġp Ċ } Ċ Ċ private Ġclass ĠCheckBox Icon 3 Ġ: ĠIcon Ġ{ ĊĠ Ġprivate Ġval Ġorg Icon Ġ= ĠMet al CheckBox Icon () ĊĠ Ġoverride Ġfun Ġpaint Icon ( c : ĠComponent , Ġg : ĠGraphics , Ġx : ĠInt , Ġy : ĠInt ) Ġ{ ĊĠĠĠ Ġval Ġg 2 Ġ= Ġg . create () Ġas ? ĠGraphics 2 D Ġ?: Ġreturn ĊĠĠĠ Ġg 2 . translate ( x , Ġy ) ĊĠĠĠ Ġorg Icon . paint Icon ( c , Ġg 2 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġg 2 . color Ġ= ĠColor ( 2 5 5 , Ġ 1 5 5 , Ġ 1 5 5 , Ġ 1 0 0 ) ĊĠĠĠ Ġg 2 . fillRect ( 2 , Ġ 2 , Ġicon Width Ġ- Ġ 4 , Ġicon Height Ġ- Ġ 4 ) ĊĠĠĠ Ġg 2 . dispose () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget Icon Width () Ġ= Ġorg Icon . icon Width ĊĊĠ Ġoverride Ġfun Ġget Icon Height () Ġ= Ġorg Icon . icon Height Ċ } Ċ Ċ private Ġclass ĠCheckBox Icon 2 Ġ: ĠIcon Ġ{ ĊĠ Ġprivate Ġval Ġorg Icon Ġ= ĠUI Manager . get Icon (" CheckBox . icon ") ĊĠ Ġoverride Ġfun Ġpaint Icon ( c : ĠComponent , Ġg : ĠGraphics , Ġx : ĠInt , Ġy : ĠInt ) Ġ{ ĊĠĠĠ Ġval Ġg 2 Ġ= Ġg . create () Ġas ? ĠGraphics 2 D Ġ?: Ġreturn ĊĠĠĠ Ġg 2 . translate ( x , Ġy ) ĊĠĠĠ Ġorg Icon . paint Icon ( c , Ġg 2 , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġif Ġ( c Ġis ĠAbstract Button ) Ġ{ ĊĠĠĠĠĠ Ġval Ġmodel Ġ= Ġc . model ĊĠĠĠĠĠ Ġg 2 . color Ġ= ĠColor ( 2 5 5 , Ġ 1 5 5 , Ġ 1 5 5 , Ġ 1 0 0 ) ĊĠĠĠĠĠ Ġg 2 . fillRect ( 2 , Ġ 2 , Ġicon Width Ġ- Ġ 4 , Ġicon Height Ġ- Ġ 4 ) ĊĠĠĠĠĠ Ġif Ġ( model . isSelected ) Ġ{ ĊĠĠĠĠĠĠĠ Ġg 2 . color Ġ= ĠColor . RED ĊĠĠĠĠĠĠĠ Ġg 2 . draw Line ( 9 , Ġ 3 , Ġ 9 , Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġg 2 . draw Line ( 8 , Ġ 4 , Ġ 9 , Ġ 4 ) ĊĠĠĠĠĠĠĠ Ġg 2 . draw Line ( 7 , Ġ 5 , Ġ 9 , Ġ 5 ) ĊĠĠĠĠĠĠĠ Ġg 2 . draw Line ( 6 , Ġ 6 , Ġ 8 , Ġ 6 ) ĊĠĠĠĠĠĠĠ Ġg 2 . draw Line ( 3 , Ġ 7 , Ġ 7 , Ġ 7 ) ĊĠĠĠĠĠĠĠ Ġg 2 . draw Line ( 4 , Ġ 8 , Ġ 6 , Ġ 8 ) ĊĠĠĠĠĠĠĠ Ġg 2 . draw Line ( 5 , Ġ 9 , Ġ 5 , Ġ 9 ) ĊĠĠĠĠĠĠĠ Ġg 2 . draw Line ( 3 , Ġ 5 , Ġ 3 , Ġ 5 ) ĊĠĠĠĠĠĠĠ Ġg 2 . draw Line ( 3 , Ġ 6 , Ġ 4 , Ġ 6 ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġg 2 . dispose () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget Icon Width () Ġ= Ġorg Icon . icon Width ĊĊĠ Ġoverride Ġfun Ġget Icon Height () Ġ= Ġorg Icon . icon Height Ċ } Ċ Ċ private Ġclass ĠCheckBox Icon Ġ: ĠIcon Ġ{ ĊĠ Ġoverride Ġfun Ġpaint Icon ( c : ĠComponent , Ġg : ĠGraphics , Ġx : ĠInt , Ġy : ĠInt ) Ġ{ ĊĠĠĠ Ġval Ġcb Ġ= Ġc Ġas ? ĠJ CheckBox Ġ?: Ġreturn ĊĠĠĠ Ġval Ġmodel Ġ= Ġcb . model ĊĠĠĠ Ġval Ġg 2 Ġ= Ġg . create () Ġas ? ĠGraphics 2 D Ġ?: Ġreturn ĊĠĠĠ Ġg 2 . translate ( x , Ġy ) ĊĊĠĠĠ Ġ// Ġouter Ġbe vel ĊĠĠĠ Ġif Ġ( cb . is Border Paint ed Flat ) Ġ{ ĊĠĠĠĠĠ Ġg 2 . color Ġ= ĠUI Manager . getColor (" CheckBox . shadow ") ĊĠĠĠĠĠ Ġg 2 . draw Rect ( 1 , Ġ 1 , ĠSIZE Ġ- Ġ 3 , ĠSIZE Ġ- Ġ 3 ) ĊĠĠĠĠĠ Ġif Ġ( model . is Pressed Ġ&& Ġmodel . is Ar med ) Ġ{ ĊĠĠĠĠĠĠĠ Ġg 2 . color Ġ= ĠUI Manager . getColor (" CheckBox . background ") ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġg 2 . color Ġ= ĠUI Manager . getColor (" CheckBox . inter ior Background ") ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġg 2 . fillRect ( 2 , Ġ 2 , ĠSIZE Ġ- Ġ 4 , ĠSIZE Ġ- Ġ 4 ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġ// ĠO uter Ġtop / left ĊĠĠĠĠĠ Ġg 2 . color Ġ= ĠUI Manager . getColor (" CheckBox . shadow ") ĊĠĠĠĠĠ Ġg 2 . draw Line ( 0 , Ġ 0 , Ġ 1 1 , Ġ 0 ) ĊĠĠĠĠĠ Ġg 2 . draw Line ( 0 , Ġ 1 , Ġ 0 , Ġ 1 1 ) ĊĊĠĠĠĠĠ Ġ// ĠO uter Ġbottom / right ĊĠĠĠĠĠ Ġg 2 . color Ġ= ĠUI Manager . getColor (" CheckBox . highlight ") ĊĠĠĠĠĠ Ġg 2 . draw Line ( 1 2 , Ġ 0 , Ġ 1 2 , Ġ 1 2 ) ĊĠĠĠĠĠ Ġg 2 . draw Line ( 0 , Ġ 1 2 , Ġ 1 1 , Ġ 1 2 ) ĊĊĠĠĠĠĠ Ġ// ĠInner Ġtop . left ĊĠĠĠĠĠ Ġg 2 . color Ġ= ĠUI Manager . getColor (" CheckBox . dark Shadow ") ĊĠĠĠĠĠ Ġg 2 . draw Line ( 1 , Ġ 1 , Ġ 1 0 , Ġ 1 ) ĊĠĠĠĠĠ Ġg 2 . draw Line ( 1 , Ġ 2 , Ġ 1 , Ġ 1 0 ) ĊĊĠĠĠĠĠ Ġ// ĠInner Ġbottom / right ĊĠĠĠĠĠ Ġg 2 . color Ġ= ĠUI Manager . getColor (" CheckBox . light ") ĊĠĠĠĠĠ Ġg 2 . draw Line ( 1 , Ġ 1 1 , Ġ 1 1 , Ġ 1 1 ) ĊĠĠĠĠĠ Ġg 2 . draw Line ( 1 1 , Ġ 1 , Ġ 1 1 , Ġ 1 0 ) ĊĊĠĠĠĠĠ Ġ// Ġinside Ġbox ĊĠĠĠĠĠ Ġval Ġcolor Ġ= ĠColor ( 2 5 5 , Ġ 1 5 5 , Ġ 1 5 5 ) ĊĠĠĠĠĠ Ġif Ġ( model . is Pressed Ġ&& Ġmodel . is Ar med ) Ġ{ ĊĠĠĠĠĠĠĠ Ġg 2 . color Ġ= Ġcolor . bright er () ĊĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġg 2 . color Ġ= Ġcolor ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġg 2 . fillRect ( 2 , Ġ 2 , ĠSIZE Ġ- Ġ 4 , ĠSIZE Ġ- Ġ 4 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġpaint Ġcheck ĊĠĠĠ Ġif Ġ( model . isSelected ) Ġ{ ĊĠĠĠĠĠ Ġg 2 . color Ġ= ĠColor . BLUE ĊĠĠĠĠĠ Ġg 2 . draw Line ( 9 , Ġ 3 , Ġ 9 , Ġ 3 ) ĊĠĠĠĠĠ Ġg 2 . draw Line ( 8 , Ġ 4 , Ġ 9 , Ġ 4 ) ĊĠĠĠĠĠ Ġg 2 . draw Line ( 7 , Ġ 5 , Ġ 9 , Ġ 5 ) ĊĠĠĠĠĠ Ġg 2 . draw Line ( 6 , Ġ 6 , Ġ 8 , Ġ 6 ) ĊĠĠĠĠĠ Ġg 2 . draw Line ( 3 , Ġ 7 , Ġ 7 , Ġ 7 ) ĊĠĠĠĠĠ Ġg 2 . draw Line ( 4 , Ġ 8 , Ġ 6 , Ġ 8 ) ĊĠĠĠĠĠ Ġg 2 . draw Line ( 5 , Ġ 9 , Ġ 5 , Ġ 9 ) ĊĠĠĠĠĠ Ġg 2 . draw Line ( 3 , Ġ 5 , Ġ 3 , Ġ 5 ) ĊĠĠĠĠĠ Ġg 2 . draw Line ( 3 , Ġ 6 , Ġ 4 , Ġ 6 ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( model . is R ollo ver ) Ġ{ ĊĠĠĠĠĠ Ġg 2 . color Ġ= ĠColor . OR ANGE ĊĠĠĠĠĠ Ġg 2 . draw Line ( 1 , Ġ 1 , Ġ 1 Ġ+ ĠSIZE Ġ- Ġ 3 , Ġ 1 ) ĊĠĠĠĠĠ Ġg 2 . draw Line ( 1 , Ġ 1 , Ġ 1 , Ġ 1 Ġ+ ĠSIZE Ġ- Ġ 3 ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġg 2 . dispose () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget Icon Width () Ġ= ĠSIZE ĊĊĠ Ġoverride Ġfun Ġget Icon Height () Ġ= ĠSIZE ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġprivate Ġconst Ġval ĠSIZE Ġ= Ġ 1 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 ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ