์ƒˆ์†Œ์‹

Languages/JAVA

[Java] JavaFx์„ค์น˜ํ•˜๊ธฐ

  • -
๋ฐ˜์‘ํ˜•

์•ˆ๋…•ํ•˜์„ธ์š” ์˜ค๋Š˜์€ javaFx์„ค์น˜ ๋ฐ ์†Œ๊ฐœ๋ฅผ ํ•ด๋“œ๋ฆด๊บผ์˜ˆ์š”!

์ด๋ฒˆ์— java๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌํ˜„ํ•ด๋ณด๊ณ  ์‹ถ์€๋ฐ

๊ทธ๋Ÿฌ๊ธฐ ์œ„ํ•ด์„œ๋Š” JavaFx๋Š” ํ•„์ˆ˜! ์ด๋ฏ€๋กœ..

๊ฐ„๋žตํžˆ ์„ค๋ช… ํ›„ ๋ฐ”๋กœ ๊ฐ™์ด ์‹คํ–‰์‹œ์ผœ ๋ณด๋„๋ก ํ•ด์š”~(๏ฝก๏ฝฅ∀๏ฝฅ)๏พ‰๏พž

 


 

์†Œ๊ฐœ๊ธ€

 

์ง€๊ธˆ๊นŒ์ง€ Java์—์„œ ๋ฐ์Šคํฌํ†ฑ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•  ๋•Œ GUI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์‚ฌ์šฉ๋˜์–ด ์˜จ ๊ฒƒ์€

"AWT"์™€ "Swing" ์ด์—ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ, ์‹ค์ œ๋กœ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜์–ด์˜จ ๊ฒƒ์€ Swing ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ตœ๊ทผ Java8์ด ๋˜๊ณ , ์ƒˆ๋กœ์šด "JavaFx"๊ฐ€ ๊ธฐ๋ณธ์œผ๋กœ ์žฅ์ฐฉ๋˜์–ด Swing์—์„œ JavaFx๋กœ ์ „ํ™˜์ด ํ™•์ •๋˜์—ˆ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ์š”,

JavaFx์˜ ๊ธฐ๋ณธ ์ฝ”๋“œ๋Š” AWT์™€ Swing๊ณผ๋Š” ์ƒ๋‹นํžˆ ๋‹ค๋ฅด๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. <์ถœ์ฒ˜: https://araikuma.tistory.com/377>

 

- ์ž๋ฐ”๋Š” AWT์™€ Swing ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๋“ค์ด ๋‹ค์–‘ํ•œ ๋ชจ์–‘์œผ๋กœ ์‰ฝ๊ฒŒ GUI๋ฅผ ๊ตฌ์„ฑํ•ด ์ค๋‹ˆ๋‹ค.

 

 

  • GUI ์‘์šฉํ”„๋กœ๊ทธ๋žจ์ด๋ž€?

๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(graphical user interface, GUI)๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž…์ถœ๋ ฅ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์•Œ๊ธฐ ์‰ฌ์šด ์•„์ด์ฝ˜ ๋”ฐ์œ„์˜ ๊ทธ๋ž˜ํ”ฝ์œผ๋กœ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๋‹ค. ์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ, ํ™”๋ฉด ์œ„์˜ ๋ฌผ์ฒด๋‚˜ ํ‹€, ์ƒ‰์ƒ๊ณผ ๊ฐ™์€ ๊ทธ๋ž˜ํ”ฝ ์š”์†Œ๋“ค์„ ์–ด๋– ํ•œ ๊ธฐ๋Šฅ๊ณผ ์šฉ๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ์ปดํ“จํ„ฐ ์ธํ„ฐํŽ˜์ด์Šค ์ด๋‹ค. <์ถœ์ฒ˜ : ๊ตฌ๊ธ€ ์œ„ํ‚ค๋ฐฑ๊ณผ>

 

 

  • AWT(Abstract Window Toolkit)

์• ๋ธŒ์ŠคํŠธ๋ž™ํŠธ ์œˆ๋„ ํˆดํ‚ท(Abstract Window Toolkit, AWT)์€ ์ž๋ฐ”์˜ ๋ณธ ํ”Œ๋žซํผ์— ์˜์กดํ•˜๋Š” ์œˆ๋„๊ทธ๋ž˜ํ”ฝ์Šค์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ์œ„์ ฏ ํˆดํ‚ท์ด๋‹ค. AWT๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ์œ„ํ•œ ๊ทธ๋ž˜ํ”ฝ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(GUI)๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ‘œ์ค€ API์ธ ์ž๋ฐ” ํŒŒ์šด๋ฐ์ด์…˜ ํด๋ž˜์Šค(JFC)์˜ ์ผ๋ถ€์ด๋‹ค. AWT๋Š” ์ˆ˜๋งŽ์€ ์ž๋ฐ” ME๋ฅผ ์œ„ํ•œ GUI ํˆดํ‚ท์ด๊ธฐ๋„ ํ•˜๋‹ค.<์ถœ์ฒ˜ : ๊ตฌ๊ธ€ ์œ„ํ‚ค๋ฐฑ๊ณผ>

 

++์ถ”๊ฐ€ ์„ค๋ช…

๋”๋ณด๊ธฐ

Java๋Š” GUI๊ธฐ๋ฐ˜์˜ ์‘์šฉํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ์„ ์œ„ํ•ด ๋‹ค์–‘ํ•œ GUI ์ปดํฌ๋„ŒํŠธ(GUI Component)๋ฅผ ์ œ๊ณตํ•˜๋Š”๋ฐ,

๊ทธ์ค‘ 'AWT'๋Š” java.awtํŒจํ‚ค์ง€๋ฅผ ํ†ตํ•ด ๊ณต๊ธ‰๋œ๋‹ค.

 

'AWT'๋Š” Java๊ฐ€ ์ฒ˜์Œ ๋‚˜์™”์„ ์‹œ์—, ํ•จ๊ป˜ ๋ฐฐํฌ๋œ ํŒจํ‚ค์ง€๋กœ์จ ๋งŽ์€ GUI ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

Frame, Window, Panel, Dialog, Button, Label, TextField, Checkbox, Choice ๋“ฑ๊ณผ ๊ฐ™์€

AWT์˜ ์ปดํฌ๋„ŒํŠธ๋“ค์€ ์ค‘๋Ÿ‰ ์ปดํฌ๋„ŒํŠธ(heavy weingt component)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

 

์ด ์ปดํฌ๋„ŒํŠธ๋“ค์€ ์šด์˜์ฒด์ œ(OS)์˜ ๋„์›€์„ ๋ฐ›์•„ ํ™”๋ฉด์— ์ถœ๋ ฅ๋˜๋Š”๋ฐ, ์šด์˜์ฒด์ œ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŽ์ด ์†Œ๋ชจํ•˜์—ฌ ์šด์˜์ฒด์ œ์— ๋ถ€๋‹ด์„ ๋งŽ์ด ์ค€๋‹ค๊ณ  ํ•œ๋‹ค.

๋˜ํ•œ AWT ์ปดํฌ๋„ŒํŠธ๋Š” ์šด์˜์ฒด์ œ์— ์˜์กด์ ์ด๋ฏ€๋กœ OSํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ๋‹ค.

  • Swing(์Šค์œ™)

์Šค์œ™(Swing)์€ ์ž๋ฐ”์—์„œ GUI(Graphic User Interface)๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด JDK์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ ํˆดํ‚ท์œผ๋กœ ์„  ๋งˆ์ดํฌ๋กœ์‹œ์Šคํ…œ์ฆˆ์˜ ์ž๋ฐ” ๊ธฐ๋ฐ˜ ํด๋ž˜์Šค์˜ ์ผ๋ถ€์ด๋‹ค.

์Šค์œ™์€ ๊ธฐ์กด์— ๋ฐœํ‘œ๋˜์—ˆ๋˜ AWT(Abstract Window Toolkit)๊ฐ€ OS(Operating System) ๋ฐ ์œˆ๋„ ์‹œ์Šคํ…œ์˜ ์ž์›์„ ๊ทธ๋Œ€๋กœ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ž๋ฐ”์—์„œ ์ง€ํ–ฅํ•˜๋Š” "Write Once, Run Everywhere(WORE)"๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ์ข… ์‹œ์Šคํ…œ์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๋ฒ„ํŠผ๋Œ€ํ™”์ฐฝ ๋“ฑ๋งŒ์„ ๊ตฌํ˜„ํ•˜๊ณ  ํ‘œ๋‚˜ ํŠธ๋ฆฌ ๋“ฑ์˜ ์ข€ ๋” ๋ณต์žกํ•˜๊ณ  ๋‹ค์–‘ํ•œ ๊ทธ๋ž˜ํ”ฝ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ JDK 1.2 ๋ฒ„์ „๋ถ€ํ„ฐ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค. <์ถœ์ฒ˜ : ๊ตฌ๊ธ€ ์œ„ํ‚ค๋ฐฑ๊ณผ>

 

++์ถ”๊ฐ€ ์„ค๋ช…

๋”๋ณด๊ธฐ

swing์€ 'AWT'๊ธฐ์ˆ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ 'AWT'์™€๋Š” ๋‹ฌ๋ฆฌ ์ˆœ์ˆ˜ํ•˜๊ฒŒ ์ž๋ฐ” ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ๋‹ค.

์Šค์œ™ ์ปดํฌ๋„ŒํŠธ๋Š” ๊ฒฝ๋Ÿ‰ ์ปดํฌ๋„ŒํŠธ(light weight component)๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋ฉฐ, ์šด์˜์ฒด์ œ์— ๋„์›€์„ ๋ฐ›์ง€ ์•Š๊ณ  ๊ตฌํ˜„๋˜๊ธฐ ๋•Œ๋ฌธ์— ์šด์˜์ฒด์ œ์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋ฉฐ ๋™์ผํ•œ ๋ชจ์–‘์œผ๋กœ ๊ทธ๋ ค์ง„๋‹ค.

 

* ์Šค์œ™ ์ปดํฌ๋„ŒํŠธ์˜ ์ด๋ฆ„์€ AWT ์ปดํฌ๋„ŒํŠธ์™€ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋‘ ๋Œ€๋ฌธ์ž J๋กœ ์‹œ์ž‘

 

++ ๊ฐœ๋ฐœ์ž๋Š” AWT์™€ Swing ์ค‘ ์„ ํƒํ•˜์—ฌ GUI ์‘์šฉํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋ณดํ†ต Swing์„ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.

 

  • JavaFX

์ž๋ฐ”FX(JavaFX)๋Š” ๋ฐ์Šคํฌํ†ฑ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ฆฌ์น˜ ์ธํ„ฐ๋„ท ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(RIA)์„ ๊ฐœ๋ฐœํ•˜๊ณ  ๋ฐฐํฌํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ํ”Œ๋žซํผ์œผ๋กœ, ๋‹ค์–‘ํ•œ ์žฅ์น˜์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ž๋ฐ”FX๋Š” ์ž๋ฐ” SE๋ฅผ ์œ„ํ•œ ํ‘œ์ค€ GUI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ์„œ ์Šค์œ™์„ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋˜์—ˆ๋‹ค.์ž๋ฐ”FX๋Š” ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ์œˆ๋„์šฐ๋ฆฌ๋ˆ…์ŠคmacOS์˜ ๋ฐ์Šคํฌํ†ฑ ์ปดํ“จํ„ฐ์™€ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ง€์›ํ•œ๋‹ค. <์ถœ์ฒ˜ : ์œ„ํ‚ค๋ฐฑ๊ณผ>

 

 


๊ทธ๋Ÿผ ์ด์ œ JavaFX๋ฅผ ์‹คํ–‰ํ•ด๋ณผ๊ป˜์š”!

๊ทธ๋Œ€๋กœ ๋”ฐ๋ผํ•ด์ฃผ์„ธ์š”.

 

 

โ˜‘ Help > Eclipse Marketplace... ํด๋ฆญ

 

 

โ˜‘ JavaFX ๋ฅผ ๊ฒ€์ƒ‰ ํ›„, ์ฐพ์•„์„œ install ํ•ด์ฃผ์„ธ์š” (์ œ์ผ ์ฒซ ๋ฒˆ์งธ๊บผ)

 

 

โ˜‘ Finish

 

 

โ˜‘ ๋‹ค์šด๋กœ๋“œ ๋˜๊ณ ์žˆ๋„ค์š”.. ์ž ์‹œ ๊ธฐ๋‹ค๋ ค ์ฃผ์„ธ์š” (โ´โ—ก`โ) ์•„์ฐธ ๋ฒš๊ฝƒ ํ”ผ๊ณ  ์žˆ์–ด์šฉ ํžˆํžˆํžฃ

 

 

โ˜‘ ์ดํด๋ฆฝ์Šค๋ฅผ ๋‹ค์‹œ ์žฌ์‹œ์ž‘ ํ•ด์ค๋‹ˆ๋‹ค.

 

 

โ˜‘ ํ‘œ์‹œ๋œ ๊ณณ์—์„œ ์šฐํด๋ฆญ > New > Other ์„ ๋“ค์–ด๊ฐ€์ฃผ์„ธ์š”

 

 

โ˜‘ ์„ ํƒ ํ›„ Next๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”~

 

 

โ˜‘ ์ด๋ฆ„์„ ์ง€์ •ํ•ด์ฃผ์„ธ์š”. (์ €๋Š” Test1์œผ๋กœ ์ง€์ • ํ›„ ๋ชจ๋“  ๊ฐ’์„ ๊ธฐ๋ณธ์œผ๋กœ > Finish ํ•˜์˜€์Šต๋‹ˆ๋‹ค.)

 

 

โ˜‘ ๊ธฐ๋ณธ์œผ๋กœ ์ง€์ •๋˜์žˆ๋Š” ๊ฒƒ์ด๊ตฌ์š”. F11+Ctrl ํ‚ค๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ์‹œ๋ฉด ์‹คํ–‰์ด ๋˜๋„ค์š”. ->๊ธฐ๋ณธ ํฐ์ƒ‰ ํ™”๋ฉด

 

 

โ˜‘ ์˜ค๋Š˜์€ ๊ฐ„๋‹จํžˆ ์ด๋ฆ„๊นŒ์ง€๋งŒ ์ง€์ •ํ•ด์ฃผ์—ˆ์–ด์š”.


์ฒซ ์‹œ์ž‘์ธ ๋งŒํผ ๊ฐ„๋žตํžˆ ์„ค๋ช… ๋“œ๋ ธ์ง€๋งŒ

์•ž์œผ๋กœ ํ•œ๋ฐœ์ž๊ตญ์”ฉ JavaFX๋ฅผ ๋ฐฐ์›Œ๋ณด๋„๋ก ํ•ฉ์‹œ๋‹ค.

์ œ ์ฒซ๋ฒˆ์งธ ๋ชฉํ‘œ๋Š” _ ํ…ŒํŠธ๋ฆฌ์Šค ๊ฒŒ์ž„ ๊ตฌํ˜„์ด์˜ˆ์š”!! ๋‹ค๋“ค ๊ทธ๋Ÿผ

์—ด๊ณตํ•˜์‹ญ์‹œ์˜ค. เผผ ใค โ—•_โ—• เผฝใคLet's Go Study~

๋ฐ˜์‘ํ˜•
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.