package Ġclub . gu ac amo led rag on . plugin . ui Ċ Ċ import Ġjava . awt . Border Layout Ċ import Ġjava . awt . Color Ċ import Ġjava . awt . event . ActionEvent Ċ import Ġjava . awt . event . ActionListener Ċ import Ġjavax . swing .* Ċ import Ġjavax . swing . text .* Ċ Ċ class ĠChat Room Ġ{ ĊĠĠĠ Ġprivate Ġval Ġstyled Document Ġ= ĠDefault Styled Document ( Style Context ()) ĊĊĠĠĠ Ġval Ġtext Pane : ĠJ Text Pane Ġ= ĠJ Text Pane ( styled Document ) ĊĠĠĠ Ġval Ġchannel Field : ĠJTextField Ġ= ĠJTextField () ĊĠĠĠ Ġval Ġgo Button : ĠJButton Ġ= ĠJButton (" Go !") ĊĠĠĠ Ġval Ġpanel : ĠJPanel Ġ= ĠJPanel ( Border Layout ()) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcaret : ĠDefault Caret Ġ= Ġtext Pane . caret Ġas ĠDefault Caret ĊĠĠĠĠĠĠĠ Ġcaret . update Policy Ġ= ĠDefault Caret . ALWAYS _ UPDATE ĊĊĠĠĠĠĠĠĠ Ġval Ġchannel Select Panel Ġ= ĠJPanel ( Border Layout ()) ĊĠĠĠĠĠĠĠ Ġchannel Select Panel . add ( channel Field , ĠBorderLayout . CENTER ) ĊĠĠĠĠĠĠĠ Ġchannel Select Panel . add ( go Button , ĠBorderLayout . EAST ) ĊĊĠĠĠĠĠĠĠ Ġpanel . add ( channel Select Panel , ĠBorderLayout . NORTH ) ĊĠĠĠĠĠĠĠ Ġpanel . add ( J ScrollPane ( text Pane ), ĠBorderLayout . CENTER ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġappend Message ( nick : ĠString , Ġmessage : ĠString , Ġcolor : ĠColor ) Ġ{ ĊĠĠĠĠĠĠĠ ĠSw ing Utilities . invoke Later Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġset Ġ= ĠSimple Attribute Set () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset . addAttribute ( Style Constants . Foreground , Ġcolor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyled Document . insert String ( styled Document . length , Ġnick Ġ+ Ġ": Ġ", Ġset ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyled Document . insert String ( styled Document . length , Ġmessage Ġ+ Ġ"\ n ", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear () Ġ{ ĊĠĠĠĠĠĠĠ ĠSw ing Utilities . invoke And Wait Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstyled Document . remove ( 0 , Ġstyled Document . length ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }