JAVA

[Java] ์Šค์œ™ (Swing)

jjingle 2024. 1. 15. 14:42

์Šค์œ™ (Swing)

  • Java ์–ธ์–ด๋กœ ๊ฐœ๋ฐœ๋œ ๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(GUI) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
  • AWT๋ณด๋‹ค ๋” ๊ฐ•๋ ฅํ•˜๊ณ  ์ผ๊ด€๋œ GUI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ œ๊ณต
  • ํ”Œ๋žซํผ ๋…๋ฆฝ์„ฑ์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด ์ˆœ์ˆ˜ Java ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๊ตฌํ˜„๋จ
  • => Java์—์„œ ์ง€ํ–ฅํ•˜๋Š” "Write Once, Run Everywhere(WORE)"๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด, ์‹œ์Šคํ…œ์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฒ„ํŠผ ๋“ฑ์˜ UI ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ œ๊ณตํ•จ
  • ๋ชจ๋“  AWT ์ปดํฌ๋„ŒํŠธ์™€ 100% ํ˜ธํ™˜๋˜๋Š” ์ปดํฌ๋„ŒํŠธ๋กœ ์žฌ์ž‘์„ฑ ๋˜์–ด์žˆ์Œ
  • AWT ์ปดํฌ๋„ŒํŠธ์™€ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์Šค์œ™ ์ปดํฌ๋„ŒํŠธ์˜ ์ด๋ฆ„์€ ๋Œ€๋ฌธ์ž J๋กœ ์‹œ์ž‘ (ex. JComboBox, JButton, JMenu..etc)

 

Swing ํด๋ž˜์Šค ๊ตฌ์กฐ

  • JComponent ํด๋ž˜์Šค 
    • ๋ชจ๋“  ์Šค์œ™ ์ปดํฌ๋„ŒํŠธ์˜ ๊ธฐ๋ณธ ํด๋ž˜์Šค๋กœ ๊ทธ๋ž˜ํ”ฝ ๊ทธ๋ฆฌ๊ธฐ, ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” Component ํด๋ž˜์Šค์™€ UI ๊ตฌ์„ฑ ์š”์†Œ ์ถ”๊ฐ€, ๋ ˆ์ด์•„์›ƒ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ํ•˜๋Š” Container ํด๋ž˜์Šค๋ฅผ ์ƒ์† ๋ฐ›์Œ
    • ์ž์‹ ํด๋ž˜์Šค์˜ ์ด๋ฆ„์€  'J'๋กœ ์‹œ์ž‘

 

์Šค์œ™ ๊ธฐ๋ฐ˜ GUI ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ๋ฒ•

  1. ํ”„๋ ˆ์ž„ ๋งŒ๋“ค๊ธฐ
    • JFrame ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์Œ
    • ํ”„๋ ˆ์ž„ ๋ชจ์–‘(์ œ๋ชฉ, ๊ฐ€๋กœ/์„ธ๋กœ ํฌ๊ธฐ ๋“ฑ) ์„ค์ •
  2. ํ”„๋ ˆ์ž„ ํด๋ž˜์Šค ๊ฐ์ฒด ์ƒ์„ฑํ•˜๊ธฐ
    • ๊ฐœ๋ฐœ ๋Œ€์ƒ ํ”„๋ ˆ์ž„ ํด๋ž˜์Šค๋ฅผ ๊ฐ์ฒด๋กœ ์ƒ์„ฑ
    • ex) MyFrame mf = new MyFrame();
  3. ํ”„๋ ˆ์ž„์— UI ๊ตฌ์„ฑํ•˜๊ธฐ
    • JComboBox, JButton, JMenu ๋“ฑ์˜ UI ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐ์ฒด๋กœ ์ƒ์„ฑํ•˜์—ฌ ํ”„๋ ˆ์ž„์— ์ถ”๊ฐ€