package Ġcomponents . progress Bar Ċ Ċ import Ġcomponents . Render able Ċ import Ġutils . Thread Main Ċ import Ġjava . awt . Component Ċ import Ġjava . util . concurrent . Comp letableFuture Ċ import Ġjavax . swing . J ProgressBar Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġv ic b oma Ġon Ġ 0 5 / 1 2 / 1 6 . Ċ Ġ*/ Ċ class ĠProgress Bar Impl Ġinternal Ġconstructor ( val Ġmin : ĠInt , Ġval Ġmax : ĠInt ) Ġ: ĠJ ProgressBar ( min , max ) Ġ, ĠProgress Bar Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( min : ĠInt , Ġmax : ĠInt ): ĠRender able Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠProgress Bar Impl ( min , max ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit { ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġis String Paint ed Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġset Alignment X ( Component . CENTER _ ALIGNMENT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġasync UI () Ġ Ġ{ ĊĠĠĠĠĠĠĠ ĠThread Main . async UI Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCompletableFuture . run Async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġmin .. max ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 3 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġi Ġ* Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. then Accept Async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( 5 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġasync UI () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ