package Ġexample Ċ Ċ import Ġjava . awt .* Ġ// Ġk tl int - disable Ġno - wildcard - imports Ċ import Ġjavax . swing .* Ġ// Ġk tl int - disable Ġno - wildcard - imports Ċ Ċ fun Ġmake UI (): ĠComponent Ġ{ ĊĠ Ġval Ġbg 0 Ġ= ĠButton Group () ĊĠ Ġval Ġbox 0 Ġ= ĠBox . create Vertical Box () ĊĠ Ġbox 0 . border Ġ= ĠBorder Factory . create Title d Border (" Default ") ĊĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġ 4 ) Ġ{ ĊĠĠĠ Ġval Ġb Ġ= ĠJ RadioButton (" Default : Ġ$ i ") ĊĠĠĠ Ġbg 0 . add ( b ) ĊĠĠĠ Ġbox 0 . add ( b ) ĊĠĠĠ Ġbox 0 . add ( Box . create Vertical Str ut ( 5 )) ĊĠ Ġ} ĊĊĠ Ġval Ġbg 1 Ġ= ĠButton Group () ĊĠ Ġval Ġbox 1 Ġ= ĠBox . create Vertical Box () ĊĠ Ġbox 1 . border Ġ= ĠBorder Factory . create Title d Border (" Text ĠColor ") ĊĠ Ġfor Ġ( i Ġin Ġ 4 Ġuntil Ġ 8 ) Ġ{ ĊĠĠĠ Ġval Ġb Ġ= ĠColor RadioButton (" Text : Ġ$ i ") ĊĠĠĠ Ġbg 1 . add ( b ) ĊĠĠĠ Ġbox 1 . add ( b ) ĊĠĠĠ Ġbox 1 . add ( Box . create Vertical Str ut ( 5 )) ĊĠ Ġ} ĊĊĠ Ġval Ġbg 2 Ġ= ĠButton Group () ĊĠ Ġval Ġbox 2 Ġ= ĠBox . create Vertical Box () ĊĠ Ġbox 2 . border Ġ= ĠBorder Factory . create Title d Border (" Icon ĠColor ") ĊĠ Ġfor Ġ( i Ġin Ġ 8 Ġuntil Ġ 1 2 ) Ġ{ ĊĠĠĠ Ġval Ġb Ġ= Ġobject Ġ: ĠColor RadioButton (" Icon : Ġ$ i ") Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġupdate UI () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . update UI () ĊĠĠĠĠĠĠĠ Ġicon Ġ= ĠDefault Icon () ĊĠĠĠĠĠĠĠ Ġpressed Icon Ġ= ĠP ressed Icon () ĊĠĠĠĠĠĠĠ Ġselected Icon Ġ= ĠSelected Icon () ĊĠĠĠĠĠĠĠ Ġrol lover Icon Ġ= ĠR ollo ver Icon () ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġbg 2 . add ( b ) ĊĠĠĠ Ġbox 2 . add ( b ) ĊĠĠĠ Ġbox 2 . add ( Box . create Vertical Str ut ( 5 )) ĊĠ Ġ} ĊĊĠ Ġreturn ĠJPanel ( GridLayout ( 1 , Ġ 3 )). also Ġ{ ĊĠĠĠ Ġit . add ( box 0 ) ĊĠĠĠ Ġit . add ( box 1 ) ĊĠĠĠ Ġit . add ( box 2 ) ĊĠĠĠ Ġit . border Ġ= ĠBorder Factory . create Empty Border ( 2 , Ġ 2 , Ġ 2 , Ġ 2 ) ĊĠĠĠ Ġit . preferred Size Ġ= ĠDimension ( 3 2 0 , Ġ 2 4 0 ) ĊĠ Ġ} Ċ } Ċ Ċ private Ġopen Ġclass ĠColor RadioButton ( text : ĠString ?) Ġ: ĠJ RadioButton ( text ) Ġ{ ĊĠ Ġoverride Ġfun Ġupdate UI () Ġ{ ĊĠĠĠ Ġsuper . update UI () ĊĠĠĠ Ġforeground Ġ= ĠDefault Icon . DEFAULT _ COLOR ĊĠĠĠ Ġ// Ġalignment X Ġ= ĠComponent . LEFT _ ALIGNMENT ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġfire StateChanged () Ġ{ ĊĠĠĠ Ġval Ġmodel Ġ= ĠgetModel () ĊĠĠĠ Ġforeground Ġ= Ġif Ġ( model . isEnabled ) Ġ{ ĊĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġmodel . is Pressed Ġ&& Ġmodel . is Ar med Ġ-> ĠDefault Icon . PRES SED _ COLOR ĊĠĠĠĠĠĠĠ Ġmodel . isSelected Ġ-> ĠDefault Icon . SELECTED _ COLOR ĊĠĠĠĠĠĠĠ Ġis R ollo ver Enabled Ġ&& Ġmodel . is R ollo ver Ġ-> ĠDefault Icon . ROL LO VER _ COLOR ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠDefault Icon . DEFAULT _ COLOR ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ ĠColor . GRAY ĊĠĠĠ Ġ} ĊĠĠĠ Ġsuper . fire StateChanged () ĊĠ Ġ} Ċ } Ċ Ċ private Ġopen Ġclass ĠDefault Icon Ġ: Ġ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 ) ĊĠĠĠ Ġg 2 . paint Ġ= ĠDEFAULT _ COLOR ĊĠĠĠ Ġg 2 . draw Rect ( 0 , Ġ 0 , Ġicon Width Ġ- Ġ 1 , Ġicon Height Ġ- Ġ 1 ) ĊĠĠĠ Ġg 2 . draw Rect ( 1 , Ġ 1 , Ġicon Width Ġ- Ġ 2 Ġ- Ġ 1 , Ġicon Height Ġ- Ġ 2 Ġ- Ġ 1 ) ĊĠĠĠ Ġg 2 . dispose () ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget Icon Width () Ġ= ĠICON _ SIZE Ġ* Ġ 2 ĊĊĠ Ġoverride Ġfun Ġget Icon Height () Ġ= ĠICON _ SIZE ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġval ĠDEFAULT _ COLOR : ĠColor Ġ= ĠColor . BLACK ĊĠĠĠ Ġval ĠP RESSED _ COLOR : ĠColor Ġ= ĠColor . GREEN ĊĠĠĠ Ġval ĠSELECT ED _ COLOR : ĠColor Ġ= ĠColor . RED ĊĠĠĠ Ġval ĠR OL LO VER _ COLOR : ĠColor Ġ= ĠColor . BLUE ĊĠĠĠ Ġprotected Ġconst Ġval ĠICON _ SIZE Ġ= Ġ 1 6 ĊĠ Ġ} Ċ } Ċ Ċ private Ġclass ĠP ressed Icon Ġ: ĠDefault 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 ) ĊĠĠĠ Ġg 2 . paint Ġ= ĠP RESSED _ COLOR ĊĠĠĠ Ġg 2 . draw Rect ( 0 , Ġ 0 , Ġicon Width Ġ- Ġ 1 , Ġicon Height Ġ- Ġ 1 ) ĊĠĠĠ Ġg 2 . draw Rect ( 1 , Ġ 1 , Ġicon Width Ġ- Ġ 2 Ġ- Ġ 1 , Ġicon Height Ġ- Ġ 2 Ġ- Ġ 1 ) ĊĠĠĠ Ġg 2 . paint Ġ= ĠSELECT ED _ COLOR ĊĠĠĠ Ġg 2 . fillRect ( 4 , Ġ 4 , Ġicon Width Ġ- Ġ 8 , Ġicon Height Ġ- Ġ 8 ) ĊĠĠĠ Ġg 2 . dispose () ĊĠ Ġ} Ċ } Ċ Ċ private Ġclass ĠSelected Icon Ġ: ĠDefault 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 ) ĊĠĠĠ Ġg 2 . paint Ġ= ĠSELECT ED _ COLOR ĊĠĠĠ Ġg 2 . draw Rect ( 0 , Ġ 0 , Ġicon Width Ġ- Ġ 1 , Ġicon Height Ġ- Ġ 1 ) ĊĠĠĠ Ġg 2 . draw Rect ( 1 , Ġ 1 , Ġicon Width Ġ- Ġ 2 Ġ- Ġ 1 , Ġicon Height Ġ- Ġ 2 Ġ- Ġ 1 ) ĊĠĠĠ Ġg 2 . paint Ġ= ĠP RESSED _ COLOR ĊĠĠĠ Ġg 2 . fillRect ( 6 , Ġ 6 , Ġicon Width Ġ- Ġ 1 2 , Ġicon Height Ġ- Ġ 1 2 ) ĊĠĠĠ Ġg 2 . dispose () ĊĠ Ġ} Ċ } Ċ Ċ private Ġclass ĠR ollo ver Icon Ġ: ĠDefault 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 ) ĊĠĠĠ Ġg 2 . paint Ġ= ĠR OL LO VER _ COLOR ĊĠĠĠ Ġg 2 . draw Rect ( 0 , Ġ 0 , Ġicon Width Ġ- Ġ 1 , Ġicon Height Ġ- Ġ 1 ) ĊĠĠĠ Ġg 2 . draw Rect ( 1 , Ġ 1 , Ġicon Width Ġ- Ġ 2 Ġ- Ġ 1 , Ġicon Height Ġ- Ġ 2 Ġ- Ġ 1 ) ĊĠĠĠ Ġg 2 . dispose () ĊĠ Ġ} Ċ } Ċ Ċ 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 ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ