๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿš— Major Study (Bachelor)/๐ŸŸ  JAVA Programming

JAVA ํ”„๋กœ๊ทธ๋ž˜๋ฐ 15.2์žฅ

by UKHYUN22 2021. 12. 7.
728x90


Icon์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ / Scroll Bar๋ฅผ ์–ด๋–ป๊ฒŒ ๋งŒ๋“œ๋Š๋ƒ / Border๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋ฒ•


Using Icons
๋ฒ„ํŠผ์— Icon์ด ์ถ”๊ฐ€๊ฐ€ ๋˜๊ฑฐ๋‚˜ Label์— ์›ƒ๋Š” ๋ชจ์–‘์˜ Icon์ด ์ถ”๊ฐ€๊ฐ€ ๋˜์—ˆ๋‹ค.
ImageIcon์„ ํ•˜๋ฉด ํ•ด๋‹น๋˜๋Š” ์•„์ด์ฝ˜์ด ์ƒ๊ธฐ๊ณ  Label์— setIconํ•˜๋ฉด ๊ทธ ๊ณณ์— Icon์ด ์™ ๋“ค์–ด๊ฐ€๊ฒŒ ๋˜๋Š” ํ˜•ํƒœ๊ฐ€ ๋œ๋‹ค.

 


BorderLayout์— ์ฝ˜ํ…ํŠธ ๋ฐฐ์น˜ํ•˜๊ฒ ๋‹ค๋Š” ์ฝ”๋“œ
๋ผ๋ฒจ์„ ๋งŒ๋“ค์–ด์„œ setIcon์„ ํ•˜๊ฑฐ๋‚˜ helloButton์— ICON์„ ํ•˜๋‚˜ new ํ•ด์„œ ๋งŒ๋“ค๊ณ  helloButton์— add๋ฅผ ํ•˜๋Š” ๋“ฑ์œผ๋กœ ์ง„ํ–‰ํ•˜๋ฉด ๋œ๋‹ค.

 


Swing Method
๋ฒ„ํŠผ์— Icon์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ  setIcon ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ๋ฒ•! ๊ธฐํƒ€ ๋ฉ”์†Œ๋“œ๋“ค์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 


๋ฉ”๋‰ด์—๋‹ค๊ฐ€๋„ ICON์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 


JFrame์„ extendํ•˜๊ณ  contentPane์œผ๋กœ Container๋ฅผ ํ™•๋ณดํ•˜๊ณ  BorderLayout์„ ๋ฐฐ์น˜ํ•œ๋‹ค.
๊ธฐ๋ณธ ๋ฉ”๋‰ด๋ฅผ ๋งŒ๋“ค๊ณ  Exit์ด๋ผ๋Š” ๋ฉ”๋‰ด ์•ž์— ์Šค๋งˆ์ผ ์•„์ด์ฝ˜์„ ๋„ฃ๊ธฐ ์œ„ํ•ด์„œ smiley.gif ์•„์ด์ฝ˜์„ newํ•ด์„œ ๋งŒ๋“ค๊ณ  setIcon์œผ๋กœ ICON์„ ๋ฐฐ์น˜์‹œํ‚จ๋‹ค.

 


Scroll Bar์— ๋Œ€ํ•œ ์–˜๊ธฐ ์ง„ํ–‰
JScrollPane ํด๋ž˜์Šค์— ํ•ด๋‹น TextArea์— Scroll bar๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋œ๋‹ค. scrolledText๋ฅผ textPanel์— addํ•˜๋ฉด ๋œ๋‹ค. view port ๊ฐœ๋…์„ ์ดํ•ดํ•ด์•ผ ํ•œ๋‹ค. ํ•œ ๋ฒˆ์— ๋ณผ ์ˆ˜ ์—†์„ ๋•Œ ์ด๋ฅผ ํ™œ์šฉํ•˜๊ฒŒ ๋˜๋Š”๋ฐ view port๊ฐ€ ๊ณ ์ •๋˜์–ด์žˆ๊ณ  scroll bar๋ฅผ ์•„๋ž˜ ์œ„๋กœ ์›€์ง์ด๋ฉด์„œ ๋„“์€ ์˜์—ญ์„ ์™”๋‹ค๊ฐ”๋‹ค ํ•˜๋ฉด์„œ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ฒ ๋‹ค๋ผ๋Š” ๊ฒƒ์ด๋‹ค.

 


Text Area Feature
๋‚ด๊ฐ€ ๋ณผ ์ˆ˜ ์ž‡๋Š” ๊ณต๊ฐ„์ด view port์ด๊ณ  ๋” ๋„“์€ Text Area๋ฅผ ๋ณด๊ธฐ ์œ„ํ•ด์„œ ํ•ด๋‹น ๋ถ€๋ถ„์„ ์œ„ ์•„๋ž˜๋กœ ์›€์ง์ผ ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๊ทธ ๊ณณ์— Scroll Bar๋ฅผ ๋‘์–ด ์›€์ง์ผ ์ˆ˜ ์žˆ๋Š” ์ƒ๋Œ€์ ์ธ ๊ฒƒ์œผ๋กœ ๋ณด๋ฉด ๋œ๋‹ค.

 


Horizonํ•˜๊ฒŒ Vertical ํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
scrolledText์— . ์„ ํ•˜๊ณ  setHorizontalScrollBarPolicy ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ€๋Šฅํ•˜๋‹ค.

 


JFrame์„ extendํ•˜๊ณ  TextArea๋ฅผ ์ถฉ๋ถ„ํžˆ ๋„“๊ฒŒ ๋งŒ๋“ค์–ด theText๋ฅผ ๋งŒ๋“ค๊ณ  theText๋ฅผ JScrollPane์— ๋„ฃ์–ด์„œ scrolledTextf๋ฅผ ๋งŒ๋“ค๊ณ  Verticalํ•˜๊ฒŒ ์„ ์–ธํ•ด์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  textPanel์— add๋ฅผ ํ•˜๋ฉด ๊ตฌํ˜„์ด ๋œ๋‹ค.

 

 


JScrollPane method๋“ค์ด ์กด์žฌํ•œ๋‹ค.

 


Adding Border์— ๋Œ€ํ•œ ์–˜๊ธฐ ์ง„ํ–‰
5๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•˜๊ณ  ๊ฐ ์‚ฌ์šฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ณ  ์ž ํ•œ๋‹ค. setBorder ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

 


๋ฒ„ํŠผ์ด ์˜ค๋ชฉํ•œ Test์™€ ๋ณผ๋กํ•œ Clear๊ฐ€ ์œ„ ์‚ฌ์ง„์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค.
๋นจ๊ฐ„์ƒ‰์œผ๋กœ ๋ณด์ด๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ์ž๋ฆฌ ์ฒ˜๋ฆฌ๋ฒ•์— ์˜ํ•ด์„œ ์ฒ˜๋ฆฌ๋œ ํ™”๋ฉด์ด๋‹ค. ๋˜ ํ•˜๋‚˜๋Š” ๊ฒ€์ •์ƒ‰์œผ๋กœ ๋˜‘๊ฐ™์ด ๋‘˜๋ฃจ๊ฒŒ ๋œ ๊ฐ€์žฅ์ž๋ฆฌ ์ฒ˜๋ฆฌ๋ฒ•์œผ๋กœ ์ฒ˜๋ฆฌ๋œ ํ™”๋ฉด์ด๋‹ค. Enter your name here์—๋„ margin ์ฒ˜๋ฆฌ๊ฐ€ ๋˜์–ด ์žˆ๋Š”๋ฐ ์ด๊ฒƒ ๋˜ํ•œ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒƒ

 


BevelBorder๋Š” ๋ฒ„ํŠผ์˜ ์˜ค๋ชฉ(raised) ๋ณผ๋ก (Lowered)์„ ์„ค์ •
EtchedBorder๋Š” ๋‘๊ฐ€์ง€ ์ƒ‰๊น”
EmptyBorder๋Š” ๋นˆ ์ƒ‰๊น”๋กœ ์ญ‰ ๋‘๋ฃจ๊ฒŒ ๋œ๋‹ค. Blank๋กœ ๋ผ์ธ ์ฒ˜๋ฆฌ
LineBorder๋Š” ๋˜‘๊ฐ™์€ ํ•˜๋‚˜์˜ ์ƒ‰๊น”๊ณผ ๋‘๊นจ๋กœ ๋‘๋ฃจ๊ฒŒ ๋œ๋‹ค.
MatteBorder ๋™์„œ๋‚จ๋ถ์˜ ๊ฐ™์€ ์ƒ‰๊ณผ Icon์œผ๋กœ ๋‘๋ฃจ๊ฒŒ ๋œ๋‹ค.

 


setBorder์—์„œ EtchedBorder๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. Blue์™€ Red ์„ ์ด ์ „์ฒด์ ์œผ๋กœ ๊ฐ€์žฅ์ž๋ฆฌ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜์–ด์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์™ผ์ชฝ์˜ ์œ„๋Š” blue๊ฐ€ ๋ฐ”๊นฅ์— ์žˆ๊ณ  ์˜ค๋ฅธ์ชฝ ์•„๋ž˜์—๋Š” blue๊ฐ€ ์•ˆ์— ์ž‡๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 


EmptyBorder๋Š” ๊ฐ€์žฅ์ž๋ฆฌ์˜ ํ•ด๋‹น๋ถ€๋ถ„์„ ์—†๋Š” ๊ฒƒ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ฒ ๋‹ค!!
์ ์„ ์œผ๋กœ ์ฒ˜๋ฆฌ ๋œ ๊ฒƒ์ด ๊ฐ€์žฅ์ž๋ฆฌ์— ๊ณต๋ฐฑ์„ ์ค€ ๋ถ€๋ถ„์ด ๋˜๊ฒ ๋‹ค. Label์˜ ๋ฐฐ์น˜๋ฅผ Center๋กœ ๋ฐฐ์น˜๋ฅผ ํ•˜์ง€๋งŒ ๊ฐ€์žฅ์ฐจ๋ฆฌ๋ฅผ ์—†๋Š” ๊ฒƒ์œผ๋กœ ํ–‡๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์˜ Center์— ํ•ด๋‹นํ•˜๋Š” ๊ณณ์— ์œ„์น˜ํ•˜๊ฒŒ ๋œ๋‹ค. ๋ถ,์„œ,๋‚จ,๋™ ์˜ ์ˆœ์„œ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค.

LineBorder๋Š” ํ•˜๋‚˜์˜ ์ƒ‰์œผ๋กœ 10์˜ ๋‘๊นจ๋กœ ๋‘๋ฃจ๊ฒŒ ๋œ๋‹ค.

 


BevelBorder์˜ LOWERED / RAISED ๊ฐ€ ์žˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๊ณ  ๋ถ์„œ๋‚จ๋™์˜ ์ˆœ์„œ๋กœ ์˜์—ญ์˜ ๊ฐ„๊ฒฉ์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 


๊ด€๋ จ๋œ ์—ฌ๋Ÿฌ Border ์ฒ˜๋ฆฌ๋ฒ•์˜ Constructor์˜ ์ข…๋ฅ˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 


JFrame์„ extendํ•˜๊ณ  MatteBorder์— smile Icon์„ ๋„ฃ๊ฒŒ ๋œ๋‹ค.