๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ์ธ ๊ณต๋ถ€/Java, Python

[JAVA] SwingUtilities.invokeLater()

by syLim___ 2024. 10. 9.
728x90

 

โœ… EDT์˜ ์—ญํ• 

- Java Swing ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ชจ๋“  GUI ์—…๋ฐ์ดํŠธ๋Š” ์ด๋ฒคํŠธ ๋””์ŠคํŒจ์น˜ ์“ฐ๋ ˆ๋“œ(EDT)์—์„œ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•œ๋‹ค.
- ์ฆ‰ ๋ชจ๋“  GUI ์—…๋ฐ์ดํŠธ๋Š” EDT๋ผ๋Š” ํ•˜๋‚˜์˜ ์“ฐ๋ ˆ๋“œ์—์„œ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•œ๋‹ค.

 

โœ… SwingUtilities.invokeLater()

- ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋‚˜ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ GUI ์—…๋ฐ์ดํŠธ ์ž‘์—…์„ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ์—๋Š”

    SwingUtilites.invokeLater()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GUI ์—…๋ฐ์ดํŠธ ์ž‘์—…์„ EDT๊ฐ€ ์ฒ˜๋ฆฌํ•˜๋„๋ก EDT ์—๊ฒŒ ์ž‘์—…์„ ์ „๋‹ฌํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.


- ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด, EDT๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๊ฐ€ GUI๋ฅผ ์ˆ˜์ •ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

SwingUtilities.invokeLater(new Runnable() {
    public void run() {
        // GUI ์—…๋ฐ์ดํŠธ ์ž‘์—… ์ฝ”๋“œ ์ž‘์„ฑ
    }
});

 

- ์ง€๊ธˆ๊นŒ์ง€๋Š” EDT๋ผ๋Š” ์Šค๋ ˆ๋“œ๊ฐ€ GUI ์—…๋ฐ์ดํŠธ ์ž‘์—…์„ ๋‹ต๋‹นํ•˜๊ณ  ์žˆ๋Š”์ง€๋„ ๋ชฐ๋ž๊ณ , ๋‹ค๋ฅธ ์™ธ๋ถ€ ์Šค๋ ˆ๋“œ์—์„œ GUI ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ์—๋Š” invokeLater() ๋ฉ”์„œ๋“œ๋ฅผ ์จ์„œ EDT์—๊ฒŒ ์ž‘์—…์„ ๋„˜๊ฒจ์ฃผ์–ด์•ผ ํ•˜๋Š”์ค„๋„ ๋ชฐ๋ž๋‹ค. ๊ณต๋ถ€ํ•˜๋‹ค๊ฐ€ ์ƒˆ๋กœ์šด ๊ฑธ ์•Œ๊ฒŒ ๋˜์–ด์„œ ํฌ์ŠคํŒ… ํ•ด๋ดค๋‹ค.

728x90