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 . event . Ancestor Event Ċ import Ġjavax . swing . event . Ancestor Listener Ċ import Ġjavax . swing . table . Default TableModel Ċ Ċ fun Ġmake UI (): ĠComponent Ġ{ ĊĠ Ġval Ġmodel Ġ= ĠarrayOf (" Item Ġ 0 ", Ġ" Item Ġ 1 ", Ġ" Item Ġ 2 ") ĊĠ Ġval Ġcolumn Names Ġ= ĠarrayOf (" Default ", Ġ" setEnabled ", Ġ" String ") ĊĠ Ġval Ġdata Ġ= ĠarrayOf ( ĊĠĠĠ ĠarrayOf ( model [ 0 ], Ġmodel [ 0 ], Ġ" aaa "), ĊĠĠĠ ĠarrayOf ( model [ 1 ], Ġmodel [ 2 ], Ġ" bbb ") ĊĠ Ġ) ĊĠ Ġval Ġtable Ġ= ĠJ Table ( Default TableModel ( data , Ġcolumn Names )) ĊĠ Ġtable . row Height Ġ= Ġ 2 0 ĊĠ Ġtable . column Model . getColumn ( 0 ). cell Editor Ġ= ĠDefault Cell Editor ( J ComboBox ( model )) ĊĠ Ġval Ġcombo Box Ġ= ĠJ ComboBox ( model ) ĊĠ Ġcombo Box . add Ancestor Listener ( object Ġ: ĠAn cestor Listener Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġancestor Added ( e : ĠAn cestor Event ) Ġ{ ĊĠĠĠĠĠ Ġprintln (" ancestor Added ") ĊĠĠĠĠĠ Ġval Ġc Ġ= Ġe . component ĊĠĠĠĠĠ Ġc . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠ ĠEvent Queue . invoke Later Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" invoke Later ") ĊĠĠĠĠĠĠĠ Ġc . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġancestor Removed ( e : ĠAn cestor Event ) Ġ{ ĊĠĠĠĠĠ Ġ/* Ġnot Ġneeded Ġ*/ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġancestor Moved ( e : ĠAn cestor Event ) Ġ{ ĊĠĠĠĠĠ Ġ/* Ġnot Ġneeded Ġ*/ ĊĠĠĠ Ġ} ĊĠ Ġ}) ĊĠ Ġtable . column Model . getColumn ( 1 ). cell Editor Ġ= ĠDefault Cell Editor ( comboBox ) ĊĠ Ġreturn ĠJPanel ( Border Layout ()). also Ġ{ ĊĠĠĠ Ġit . add ( J ScrollPane ( table )) ĊĠĠĠ Ġ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 ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ