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 . ChangeEvent Ċ import Ġjavax . swing . event . ChangeListener Ċ Ċ fun Ġmake UI (): ĠComponent Ġ{ ĊĠ Ġval Ġlbl 1 Ġ= Ġobject Ġ: ĠJLabel (" 1 1 1 1 1 1 1 1 ") Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget PreferredSize () Ġ= ĠDimension ( 1 2 0 0 , Ġ 6 0 0 ) ĊĠ Ġ} ĊĠ Ġval Ġlbl 2 Ġ= Ġobject Ġ: ĠJLabel (" 2 2 2 2 2 2 2 2 ") Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġget PreferredSize () Ġ= ĠDimension ( 6 0 0 , Ġ 1 2 0 0 ) ĊĠ Ġ} ĊĠ Ġval Ġsp 1 Ġ= ĠJ ScrollPane ( lbl 1 ) ĊĠ Ġval Ġsp 2 Ġ= ĠJ ScrollPane ( lbl 2 ) ĊĠ Ġval Ġcl Ġ= Ġobject Ġ: ĠChange Listener Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġadjust ing Ġ= Ġfalse ĊĠĠĠ Ġoverride Ġfun Ġstate Changed ( e : ĠChange Event ) Ġ{ ĊĠĠĠĠĠ Ġvar Ġsrc : ĠJ Viewport ? Ġ= Ġnull ĊĠĠĠĠĠ Ġvar Ġtgt : ĠJ Viewport ? Ġ= Ġnull ĊĠĠĠĠĠ Ġif Ġ( e . source Ġ=== Ġsp 1 . viewport ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsrc Ġ= Ġsp 1 . viewport ĊĠĠĠĠĠĠĠ Ġtgt Ġ= Ġsp 2 . viewport ĊĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( e . source Ġ=== Ġsp 2 . viewport ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsrc Ġ= Ġsp 2 . viewport ĊĠĠĠĠĠĠĠ Ġtgt Ġ= Ġsp 1 . viewport ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġif Ġ( adjust ing Ġ|| Ġtgt Ġ== Ġnull Ġ|| Ġsrc Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġadjust ing Ġ= Ġtrue ĊĠĠĠĠĠ Ġval Ġdim 1 Ġ= Ġsrc . view Size ĊĠĠĠĠĠ Ġval Ġs iz 1 Ġ= Ġsrc . size ĊĠĠĠĠĠ Ġval Ġp nt 1 Ġ= Ġsrc . view Position ĊĠĠĠĠĠ Ġval Ġdim 2 Ġ= Ġtgt . view Size ĊĠĠĠĠĠ Ġval Ġs iz 2 Ġ= Ġtgt . size ĊĠĠĠĠĠ Ġval Ġd 1 Ġ= Ġp nt 1 . getY () Ġ/ Ġ( dim 1 . height Ġ- Ġs iz 1 . height ) Ġ* Ġ( dim 2 . height Ġ- Ġs iz 2 . height ) ĊĠĠĠĠĠ Ġp nt 1 . y Ġ= Ġd 1 . toInt () ĊĠĠĠĠĠ Ġval Ġd 2 Ġ= Ġp nt 1 . getX () Ġ/ Ġ( dim 1 . width Ġ- Ġs iz 1 . width ) Ġ* Ġ( dim 2 . width Ġ- Ġs iz 2 . width ) ĊĠĠĠĠĠ Ġp nt 1 . x Ġ= Ġd 2 . toInt () ĊĠĠĠĠĠ Ġtgt . view Position Ġ= Ġp nt 1 ĊĠĠĠĠĠ Ġadjust ing Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĠ Ġsp 1 . viewport . add ChangeListener ( cl ) ĊĠ Ġsp 2 . viewport . add ChangeListener ( cl ) ĊĠ Ġreturn ĠJPanel ( GridLayout ( 2 , Ġ 1 )). also Ġ{ ĊĠĠĠ Ġit . add ( sp 1 ) ĊĠĠĠ Ġit . add ( sp 2 ) ĊĠĠĠ Ġ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 ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ