GUI

GUI ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ํ‚ค๋ณด๋“œ๋ฟ ์•„๋‹ˆ๋ผ ๋งˆ์šฐ์Šค ์‚ฌ์šฉ ์ง€์›, ํ™”๋ คํ•˜๊ณ  ๋‹ค์–‘ํ•œ ํ™”๋ฉด๊ณผ ๋”๋ถˆ์–ด ์‚ฌ์šฉ์ž๊ฐ€ ์ž์œ ๋กญ๊ฒŒ ํ™”๋ฉด ์ž‘๋™ ๊ฐ€๋Šฅํ•˜๋‹ค.

Java GUI ์ข…๋ฅ˜

  • AWT(Abstract Windows Toolkit) : ์šด์˜์ฒด์ œ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ž์›์„ ์ด์šฉํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ ์ƒ์„ฑํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์šด์˜์ฒด์ œ ๋ณ„๋กœ ๋А๋‚Œ์ด ๋‹ค๋ฅด๋‹ค.

    • java.awt.*

    • Button, Frame, TextField

  • Swing : ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ž๋ฐ”๋กœ ์ž‘์„ฑ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ํ”Œ๋žซํผ์—์„œ๋„ ์ผ๊ด€๋œ ํ™”๋ฉด์„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋‹ค.

    • javax.swing.*

    • ํ˜•์‹ํ™”๋œ ํ…์ŠคํŠธ ์ž…๋ ฅ์ด๋‚˜ ํŒจ์Šค์›Œ๋“œ ํ•„๋“œ ๋™์ž‘๊ณผ ๊ฐ™์€ ๋ณต์žกํ•œ ๊ธฐ๋Šฅ์ด ์ œ๊ณต๋œ๋‹ค.

  • Java 2D API : ๊ทธ๋ฆผ, ์ด๋ฏธ์ง€, ์• ๋‹ˆ๋ฉ”์ด์…˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณต

  • ๋ฐ์ดํ„ฐ ์ „์†ก : ์ž๋ฅด๊ธฐ, ๋ณต์‚ฌ, ๋ถ™์ด๊ธฐ , Drag and Drop ๋“ฑ ๋ฐ์ดํ„ฐ ์ „์†ก ๊ธฐ๋Šฅ ์ œ๊ณต + undo, redo

Container

์ž๋ฐ”์—์„œ Container๋Š” ์ฐฝ์˜ ์—ญํ• ์„ ํ•œ๋‹ค.

  • ํ•œ ๊ฐœ ์ด์ƒ์˜ Container ์œ„์— Component๋“ค์ด ์˜ฌ๋ ค์งˆ ์˜์—ญ

  • Container๋Š” ์‹ค์ œ๋กœ๋Š” Component๋ณด๋‹ค ์ž‘์€ ๊ฐœ๋…

  • (์˜ˆ) Frame, Window, Panel, Dialog, Applet

  • (์˜ˆ) JFrame, JDialog, JApplet, JPanel, JScrollPane

Frame ์ƒ์„ฑ ํ•˜๊ธฐ

๋ฐฉ๋ฒ•1 : JFrame ๊ฐ์ฒด ์ƒ์„ฑ

๋ฐฉ๋ฒ•2 : JFrame ์ƒ์†

๋ฉ”์†Œ๋“œ or ์ƒ์„ฑ์ž

์ƒ์„ฑ์ž ๋˜๋Š” ๋ฉ”์†Œ๋“œ

์„ค๋ช…

void add(Component c)

์ง€์ •๋œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ”„๋ ˆ์ž„์— ์ถ”๊ฐ€

JMenuBar getJMenuBar()

์ด ํ”„๋ ˆ์ž„์— ๋Œ€ํ•œ ๋ฉ”๋‰ด๋ฅผ ์–ป๋Š”๋‹ค.

void pack()

ํ”„๋ ˆ์ž„์˜ ํฌ๊ธฐ๋ฅผ ์ถ”๊ฐ€๋œ ์ปดํฌ๋„ŒํŠธ๋“ค์˜ ํฌ๊ธฐ์— ๋งž๋„๋ก ์กฐ์ ˆํ•œ๋‹ค.

void remove(Component c)

์ง€์ •๋œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ”„๋ ˆ์ž„์—์„œ ์ œ๊ฑฐ

void setDefaultCloseOperation()

์‚ฌ์šฉ์ž๊ฐ€ ํ”„๋ ˆ์ž„์„ ๋‹ซ์„ ๋•Œ ์ˆ˜ํ–‰๋œ๋Š” ๋™์ž‘์„ ์„ค์ •ํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ JFrame.EXIT_ON_CLOSE ๋กœ ์ง€์ •

void setIconImage(Icon Image)

ํ”„๋ ˆ์ž„์ด ์ตœ์†Œํ™”๋˜์—ˆ์„ ๋•Œ์˜ ์•„์ด์ฝ˜ ์ง€์ •

void setLayout(LayoutManager layout)

ํ”„๋ ˆ์ž„์— ๋†“์ด๋Š” ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐฐ์น˜ ๊ด€๋ฆฌ์ž ์ง€์ •, ๋””ํดํŠธ๋Š” BorderLayout์ด๋‹ค.

void setLocation(int x, int y)

ํ”„๋ ˆ์ž„์˜ (x,y)์ขŒํ‘œ ์ง€์ •

void setResizeable(boolean value)

ํ”„๋ ˆ์ž„์˜ ํฌ๊ธฐ ๋ณ€๊ฒฝ ํ—ˆ์šฉ ์—ฌ๋ถ€

void setSize(int width, int height)

ํ”„๋ ˆ์ž„์˜ ํฌ๊ธฐ ์„ค์ •

void setMenuBar(JMenuBar menu)

ํ˜„์žฌ ํ”„๋ ˆ์ž„์— ๋ฉ”๋‰ด๋ฐ”๋ฅผ ๋ถ™์ธ๋‹ค.

Panel

Component๋“ค์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ์ด๋‹ค.(์ปดํฌ๋„ŒํŠธ๋“ค์„ ๋ถ™์ผ ์ˆ˜ ์žˆ๋Š” ํŒ)

๋ฉ”์†Œ๋“œ & ์ƒ์„ฑ์ž

์ƒ์„ฑ์ž or ๋ฉ”์†Œ๋“œ

์„ค๋ช…

JPanel()

์ƒˆ๋กœ์šด Panel ์ƒ์„ฑ

JPanel(boolean isDoubleBuffered)

๋งŒ์•ฝ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์ฐธ์ด๋ฉด ๋”๋ธ” ๋ฒ„ํผ๋ง ์‚ฌ์šฉ

JPanel(LayoutManager layout)

์ง€์ •๋œ ๋ฐฐ์น˜ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Panel ์ƒ์„ฑ

void add(Component c)

์ง€์ •๋œ ์ปดํฌ๋„ŒํŠธ Panel์— ์ถ”๊ฐ€

void remove(Component c)

์ง€์ •๋œ ์ปดํฌ๋„ŒํŠธ Panel์— ์ œ๊ฑฐ

void setLaytout(LayoutManager layout)

๋ฐฐ์น˜ ๊ด€๋ฆฌ์ž๋ฅผ ์ง€์ •ํ•œ๋‹ค. ๋””ํดํŠธ๋Š” FlowLayout์ด๋‹ค.

void setSize(int width, int height)

Panel์˜ ํฌ๊ธฐ ์ง€์ •

void setLocation(int x, int y)

Panel์˜ ์œ„์น˜ ์ง€์ •

void setToolTipText(String text)

์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์šฐ์Šค๋ฅผ Panel์˜ ๋นˆ๊ณณ์— ์˜ฌ๋ ค๋†“์œผ๋ฉด ํŒ์„ ํ‘œ์‹œ

Component

์‹ค์ œ๋กœ Container ์œ„์— ์˜ฌ๋ ค์ ธ์„œ ํ™”๋ฉด ๊ตฌ์„ฑ์„ ๋‹ด๋‹นํ•˜๋Š” ์š”์†Œ๋“ค์ด๋‹ค.

  • (์˜ˆ) Button, TextField, TextArea, List

  • (์˜ˆ) JButton, JTextField, JChoice, JList, JMenu, JCheckbox, JScrollBar,JTextArea, JCanvas

Component ์ƒ์„ฑํ•˜๊ธฐ

๋ชจ์–‘์„ ์„ค์ •ํ•˜๋Š” ๋ฉ”์†Œ๋“œ

๋ฉ”์†Œ๋“œ

์„ค๋ช…

void setBorder(Border) Border getBorder()

์ปดํฌ๋„ŒํŠธ์˜ ํ…Œ๋‘๋ฆฌ๋ฅผ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ ธ์˜จ๋‹ค.

void setBackground(Color) Color getBackground()

์ปดํฌ๋„ŒํŠธ์˜ ๋ฐฐ๊ฒฝ์ƒ‰๋ฅผ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ ธ์˜จ๋‹ค.

void setForeground(Color) Color getForeground()

์ปดํฌ๋„ŒํŠธ์˜ ์ „๊ฒฝ์ƒ‰๋ฅผ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ ธ์˜จ๋‹ค.

void setOpaque(boolean) Boolean IsOpaque()

์ปดํฌ๋„ŒํŠธ์˜ ๋ถˆํˆฌ๋ช…์„ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๋ถˆํˆฌ๋ช…์ƒํƒœ๋ฅผ ํ™•์ธํ•œ๋‹ค.

void setFont(Font) Font getFont()

์ปดํฌ๋„ŒํŠธ์˜ ๊ธ€๊ผด์„ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ ธ์˜จ๋‹ค.

void setCursor(Cursor) Cursor getCursor()

์ปดํฌ๋„ŒํŠธ์— ๋งˆ์šฐ์Šค ์ปค์„œ๋ฅผ ๊ฐ€์ ธ๊ฐ”์„ ๋•Œ ๋ณด์ด๋Š” ์ปค์„œ ๋ชจ์–‘์„ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ ธ์˜จ๋‹ค.

Label

ํŽธ์ง‘์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ํ…์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.

๋ฉ”์†Œ๋“œ

์„ค๋ช…

String getText()

Label์˜ ํ…์ŠคํŠธ ๋ฐ˜ํ™˜

void setText()

Label์˜ ํ…์ŠคํŠธ ์„ค์ •

void setToolTipText(String text)

์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์šฐ์Šค๋ฅผ Label์˜ ์œ„์— ์˜ฌ๋ ค๋†“์œผ๋ฉด ํŒ์„ ํ‘œ์‹œ

void setVisible(boolean value)

Label์„ ๋ณด์ด๊ฒŒ ํ•˜๊ฑฐ๋‚˜ ๊ฐ์ถ˜๋‹ค.

Button

์‚ฌ์šฉ์ž๊ฐ€ ํด๋ฆญํ–ˆ์„ ๊ฒฝ์šฐ, ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒํ•˜์—ฌ ์›ํ•˜๋Š” ๋™์ž‘์„ ํ•˜๊ฒŒ ํ•˜๋Š”๋ฐ ์ด์šฉ๋œ๋‹ค.

๋ฉ”์†Œ๋“œ

์„ค๋ช…

String getText()

๋ฒ„ํŠผ์˜ ํ˜„์žฌ ํ…์ŠคํŠธ ๋ฐ˜ํ™˜

void setText(String text)

๋ฒ„ํŠผ์˜ ํ…์ŠคํŠธ ์„ค์ •

void doClick()

์‚ฌ์šฉ์ž๊ฐ€ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ ๊ฒƒ ์ฒ˜๋Ÿผ ์ด๋ฒคํŠธ ๋ฐœ์ƒ

void setBorderPanited(boolean value)

๋ฒ„ํŠผ์˜ ๊ฒฝ๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๊ฑฐ๋‚˜ ๊ฐ์ถ˜๋‹ค.

void setContentAreaFilled(boolean value)

๋ฒ„ํŠผ์˜ ๋ฐฐ๊ฒฝ์„ ์ฑ„์šธ ๊ฒƒ์ธ์ง€ ์ง€์ •

void setEnable(boolean value)

๋ฒ„ํŠผ์„ ํ™œ์„ฑํ™” ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”

void setRolloverEnabled(boolean value)

๋งˆ์šฐ์Šค๊ฐ€ ๋ฒ„ํŠผ ์œ„์— ์žˆ์œผ๋ฉด ๊ฒฝ๊ณ„๋ฅผ ์ง„ํ•˜๊ฒŒ ํ•˜๋Š” rollover ํšจ๊ณผ ์„ค์ •

void setToolTipText(String text)

์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์šฐ์Šค๋ฅผ ๋ฒ„ํŠผ์œ„์— ์˜ฌ๋ ค๋†“์œผ๋ฉด ํŒ์„ ํ‘œ์‹œ

void setVisible(boolean value)

๋ฒ„ํŠผ์„ ๋ณด์ด๊ฒŒ ํ•˜๊ฑฐ๋‚˜ ๊ฐ์ถ˜๋‹ค.

Text Field

์ž…๋ ฅ์ด ๊ฐ€๋Šฅํ•œ ํ•œ์ค„์˜ ํ…์ŠคํŠธ ํ•„๋“œ๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์‚ฌ์šฉํ•œ๋‹ค.

์ƒ์„ฑ์ž or ๋ฉ”์†Œ๋“œ

์„ค๋ช…

JTextField()

TextField ์ƒ์„ฑ

JTextField(int columns)

์ง€์ •๋œ ์นธ์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” TextField ์ƒ์„ฑ

JTextField(String text)

์ง€์ •๋œ ๋ฌธ์ž์—ด๋กœ ์ดˆ๊ธฐํ™”๋œ TextField ์ƒ์„ฑ

String getText()

TextField์— ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด ๋ฐ˜ํ™˜

void setText(String text)

TextField์— ํ…์ŠคํŠธ ์“ฐ๊ธฐ

void setEditable(boolean) boolean isEditable()

์‚ฌ์šฉ์ž๊ฐ€ ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ์„ค์ •ํ•˜๊ณ  ๋ฐ˜ํ™˜

์—ฌ๋Ÿฌ๊ฐ€์ง€ Component ์ƒ์„ฑํ•˜๊ธฐ

LayoutManager

Container ์œ„์— Component๋“ค์„ ์˜ฌ๋ฆด ๋•Œ ์ž๋ฆฌ ๋ฐฐ์น˜ ๋ฐฉ๋ฒ•

  • (์˜ˆ) FlowLayout, BorderLayout , GridLayout , CardLayout , GridBackLayout ...

Layout ์„ค์ • ํ˜•์‹

Flow Laytout

๊ธฐ๋ณธ์ ์œผ๋กœ component๋“ค์ด ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ถ”๊ฐ€๋˜๋Š” ํ˜•ํƒœ์ด๋‹ค.

Container์˜ ํฌ๊ธฐ๊ฐ€ ๋ณ€ํ•˜๋ฉด component์˜ ํฌ๊ธฐ๋Š” ๊ทธ๋Œ€๋กœ ์ด๋ฉฐ, ์œ„์น˜๊ฐ€ ๋ณ€๊ฒฝ๋œ๋‹ค. ๊ฐ€์šด๋ฐ ์ •๋ ฌ์ด ๊ธฐ๋ณธ์ด๋‹ค.

  • Panel, Applet

Border Laytout

border Layoutรฌย—ย รซยŒย€รญย•ยœ รฌยยดรซยฏยธรฌยงย€ รชยฒย€รฌยƒย‰รชยฒยฐรชยณยผ

๊ธฐ๋ณธ์ ์œผ๋กœ ์ปดํฌ๋„ŒํŠธ๋“ค์ด ํ‹€ ํ˜•ํƒœ๋กœ ์กด์žฌํ•œ๋‹ค.

Border Layout์— component๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋Š” this.add(์ปดํฌ๋„ŒํŠธ, ์œ„์น˜); ๋ฅผ ์ง€์ •ํ•ด์ค˜์•ผํ•œ๋‹ค. ์œ„์น˜๋ฅผ ์ง€์ •ํ•ด์ฃผ์ง€ ์•Š์œผ๋ฉด Default๊ฐ’์€ Center์ด๋‹ค.

Grid Layout

ํ…Œ์ด๋ธ” ํ˜•ํƒœ์˜ ๋ ˆ์ด์•„์›ƒ์ด๋‹ค. ์ธ์ˆ˜๋ฅผ ์ฃผ์ง€ ์•Š์œผ๋ฉด ํ–‰์€ 1ํ–‰์œผ๋กœ ๊ณ ์ •๋˜๊ณ  ์—ด์ด ๊ณ„์†ํ•ด์„œ ์ถ”๊ฐ€๋œ๋‹ค.

ํ–‰/์—ด ์ธ์ˆ˜์— 0์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.

  • ex) (2,0)์ด๋ฉด ํ–‰์€ 2ํ–‰์œผ๋กœ ๊ณ ์ •, ์—ด์€ ๋ฌดํ•œ๋Œ€

Card Layout

card Layoutรฌย—ย รซยŒย€รญย•ยœ รฌยยดรซยฏยธรฌยงย€ รชยฒย€รฌยƒย‰รชยฒยฐรชยณยผ

๊ตฌ์ฒด์ ์ธ ์œ„์น˜ ์ •ํ•˜๊ธฐ

setLayout์—๋Š” null๋กœ ์ง€์ •ํ•œ ํ›„ setBounds๋กœ ์ง์ ‘์ ์ธ ์ขŒํ‘œ๊ฐ’์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ณตํ•ฉ์ ์ธ ๋ ˆ์ด์•„์›ƒ ์„ค์ •ํ•˜๊ธฐ

์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ

  • ์ด๋ฒคํŠธ(event) : ๋งˆ์šฐ์Šค๋กœ ํด๋ฆญํ•˜๊ฑฐ๋‚˜ ํ‚ค๋ณด๋“œ๋กœ ๋ˆ„๋ฅด๋Š” ์ผ๋ จ์˜ ๋ชจ๋“  ์ž‘๋™

  • ๋ฆฌ์Šค๋„ˆ(Listener) : ์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์šฐ์Šค๋ฅผ ํด๋ฆญํ•˜๊ฑฐ๋‚˜ ํ‚ค๋ณด๋“œ๋ฅผ ๋ˆ„๋ฅผ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ

์ฆ‰, ๋ฒ„ํŠผ์— ๋ฐ˜์‘ํ•˜๋ ค๋ฉด ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผํ•œ๋‹ค.

์•ก์…˜ ์ด๋ฒคํŠธ actionPerformed()

  • ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” Component(๋ฒ„ํŠผ)๊ฐ€ ์žˆ์–ด์•ผํ•œ๋‹ค.

  • ์ด๋ฒคํŠธ ๋ฐœ์ƒ ๊ฐ์ง€ ๋ฐฉ๋ฒ• : Listener ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋‹ฌ์•„์ค€๋‹ค.

    • ํด๋ž˜์Šค์—์„œ implements ์‹œ์ผœ method๋ฅผ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•

    • new๋กœ ์ƒ์„ฑํ•˜์—ฌ Component๋งˆ๋‹ค ๋ฆฌ์Šค๋„ˆ๋ฅผ ๋ถ™์ด๋Š” ๋ฐฉ๋ฒ•

Event Listener ์œ„์น˜

  • ๋ณ„๋„์˜ ํด๋ž˜์Šค๋กœ Event Listener๋ฅผ ์ž‘์„ฑ

    • ๋ณ„๋„์˜ ํด๋ž˜์Šค๋ฅผ ๋‘์–ด ์ด๋ฒคํŠธ ๋™์ž‘๋งŒ์„ ์œ„ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

    • ๋ณ„๋„์˜ ํด๋ž˜์Šค์ด๊ธฐ๋•Œ๋ฌธ์— ํด๋ž˜์Šค๊ฐ„ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ฒ˜๋ฆฌํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.

  • ๋‚ด๋ถ€ ํด๋ž˜์Šค๋กœ Event Listener๋ฅผ ์ž‘์„ฑ

    • ์œ„์™€ ๊ฐ™์ด ๋ณ„๋„๋กœ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๋ฉด MyFrame์•ˆ์˜ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋ฅผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋‚ด๋ถ€ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

  • ํ”„๋ ˆ์ž„ ํด๋ž˜์Šค๊ฐ€ Event Listener๋ฅผ ๊ตฌํ˜„ํ•˜๋„๋ก ์ž‘์„ฑ

    • public class Simple extends JFrame implements ActionListener{โ€ฆ} ์˜ ํ˜•ํƒœ๋กœ actionPerformed๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

    • ๊ฐ ์ปดํฌ๋„ŒํŠธ๋“ค์ด ๊ณตํ†ต๋œ ๋™์ž‘์„ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‹ค์–‘ํ•œ ๋™์ž‘์„ ํ• ๋Œ€๋Š”, ๊ฐ ์ปดํฌ๋„ŒํŠธ์—์„œ Event Listener๋ฃฐ ๊ตฌํ˜„ํ•˜๋„๋กํ•œ๋‹ค.

  • ๊ฐ ์ปดํฌ๋„ŒํŠธ๋“ค์ด Event Listener๋ฅผ ๊ตฌํ˜„ํ•˜๋„๋ก ์ž‘์„ฑ

์ด๋ฒคํŠธ์˜ ๋ถ„๋ฅ˜

๋ชจ๋“  Component๊ฐ€ ์ง€์›ํ•˜๋Š” ์ด๋ฒคํŠธ

์ด๋ฒคํŠธ ์ข…๋ฅ˜

์„ค๋ช…

Component

์ปดํฌ๋„ŒํŠธ์˜ ํฌ๊ธฐ๋‚˜ ์œ„์น˜๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๊ฒฝ์šฐ ๋ฐœ์ƒ

Focus

ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ ๋˜๋Š” ๊ทธ ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ ๋ฐœ์ƒ

Container

์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ปจํ…Œ์ด๋„ˆ์— ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ๋  ๋•Œ ๋ฐœ์ƒ

Key

์‚ฌ์šฉ์ž๊ฐ€ ํ‚ค๋ฅผ ๋ˆŒ๋ €์„ ๋•Œ ํ‚ค๋ณด๋“œ Focus๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ์ฒด์—์„œ ๋ฐœ์ƒ

Mouse

๋งˆ์šฐ์Šค ๋ฒ„ํŠผ์ด ํด๋ฆญ๋˜๊ฑฐ๋‚˜ ๋งˆ์šฐ์Šค๊ฐ€ ๊ฐ์ฒด์˜ ์˜์—ญ์œผ๋กœ ๋“ค์–ด์˜ค๊ฐ€๋‚˜ ๋‚˜์˜ฌ๋•Œ ๋ฐœ์ƒ

MouseMotion

๋งˆ์šฐ์Šค๊ฐ€ ์›€์ง์˜€์„ ๋•Œ ๋ฐœ์ƒ

MouseWheel

์ปดํฌ๋„ŒํŠธ ์œ„์—์„œ ๋งˆ์šฐ์Šค ํœ ์„ ์›€์ง์ด๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒ

Window

์œˆ๋„์šฐ์— ์–ด๋–ค ๋ณ€ํ™”(์—ด๋ฆผ, ๋‹ซํž˜, ์•„์ด์ฝ˜ํ™” ๋“ฑ)๊ฐ€ ์žˆ์„ ๋•Œ ๋ฐœ์ƒ

์ผ๋ถ€ Component๊ฐ€ ์ง€์›ํ•˜๋Š” ์ด๋ฒคํŠธ

์ด๋ฒคํŠธ ์ข…๋ฅ˜

์„ค๋ช…

Action

์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋–ค ๋™์ž‘์„ ํ•˜๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒ

Caret

ํ…์ŠคํŠธ ์‚ฝ์ž…์ ์ด ์ด๋™ํ•˜๊ฑฐ๋‚˜ ํ…์ŠคํŠธ ์„ ํƒ์ด ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๊ฒฝ์šฐ ๋ฐœ์ƒ

Change

์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ์ฒด์˜ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๊ฒฝ์šฐ ๋ฐœ์ƒ

Document

๋ฌธ์„œ์˜ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒ

Item

์„ ํƒ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํƒํ•œ ๊ฒฝ์šฐ ๋ฐœ์ƒ

ListSelection

๋ฆฌ์ŠคํŠธ๋‚˜ ํ…Œ์ด๋ธ”์—์„œ ์„ ํƒ ๋ถ€๋ถ„์ด ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ ๋ฐœ์ƒ

Action Event

  • ์‚ฌ์šฉ์ž๊ฐ€ ๋ฒ„ํŠผ ํด๋ฆญํ•˜๋Š” ๊ฒฝ์šฐ

  • ์‚ฌ์šฉ์ž๊ฐ€ ๋ฉ”๋‰ด ํ•ญ๋ชฉ์„ ์„ ํƒํ•˜๋Š” ๊ฒฝ์šฐ

  • ์‚ฌ์šฉ์ž๊ฐ€ ํ…์ŠคํŠธ ํ•„๋“œ์—์„œ ์—”ํ„ฐํ‚ค๋ฅผ ๋ˆ„๋ฅด๋Š” ๊ฒฝ์šฐ

  • getSource() ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ ๊ฐ์ฒด๋ฅผ ์‹๋ณ„ํ•œ๋‹ค.

  • getId() ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด ์ด๋ฒคํŠธ์˜ ํƒ€์ž…์„ ์‹๋ณ„ํ•œ๋‹ค.

  • getActionCommand() ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ ์ปดํฌ๋„ŒํŠธ์˜ ์ด๋ฆ„์„ ์‹๋ณ„ํ•œ๋‹ค.

Key Event

keyListener ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค.

๋ฉ”์†Œ๋“œ

์„ค ๋ช…

keyTyped(KeyEvent e)

์‚ฌ์šฉ์ž๊ฐ€ ๊ธ€์ž๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๊ฒฝ์šฐ์— ํ˜ธ์ถœ

keyPressed(KeyEvent e)

์‚ฌ์šฉ์ž๊ฐ€ ํ‚ค๋ฅผ ๋ˆŒ๋ €์„ ๊ฒฝ์šฐ์— ํ˜ธ์ถœ

keyReleased(KeyEvent e)

์‚ฌ์šฉ์ž๊ฐ€ ํ‚ค์—์„œ ์†์„ ๋–ผ์—ˆ์„ ๊ฒฝ์šฐ์— ํ˜ธ์ถœ

Mouse ์ด๋ฒคํŠธ

๋ฉ”์†Œ๋“œ

์„ค ๋ช…

mouseClicked(MouseEvent e)

์‚ฌ์šฉ์ž๊ฐ€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งˆ์šฐ์Šค๋กœ ํด๋ฆญํ•œ ๊ฒฝ์šฐ์— ํ˜ธ์ถœ๋œ๋‹ค.

mouseEntered(MouseEvent e)

๋งˆ์šฐ์Šค ์ปค์„œ๊ฐ€ ์ปดํฌ๋„ŒํŠธ์˜ ๊ฒฝ๊ณ„์•ˆ์œผ๋กœ ์ปค์„œ๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด ํ˜ธ์ถœ๋œ๋‹ค.

mouseExited(MouseEvent e)

๋งˆ์šฐ์Šค ์ปค์„œ๊ฐ€ ์ปดํฌ๋„ŒํŠธ์˜ ๊ฒฝ๊ณ„๋ฐ–์œผ๋กœ ์ปค์„œ๊ฐ€ ๋‚˜๊ฐ€๋ฉด ํ˜ธ์ถœ๋œ๋‹ค.

mousePressed(MouseEvent e)

๋งˆ์šฐ์Šค๊ฐ€ ์ปดํฌ๋„ŒํŠธ์œ„์—์„œ ๋ˆŒ๋ ค์ง€๋ฉด ํ˜ธ์ถœ๋œ๋‹ค.

mouseReleased(MouseEvent e)

๋งˆ์šฐ์Šค๊ฐ€ ์ปดํฌ๋„ŒํŠธ์œ„์—์„œ ๋–ผ์–ด์ง€๋ฉด ํ˜ธ์ถœ๋œ๋‹ค.

Mouse์˜ ์ขŒํ‘œ ์–ป๊ธฐ

๋ฉ”์†Œ๋“œ

์„ค๋ช…

int getClickCount()

๋น ๋ฅธ ์—ฐ์†์ ์ธ ํด๋ฆญ์˜ ํšŸ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 2์ด๋ฉด ๋”๋ธ” ํด๋ฆญ์„ ์˜๋ฏธํ•œ๋‹ค.

int getX() int getY() Point getPoint()

์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋‹น์‹œ์˜ (x,y) ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์œ„์น˜๋Š” ์ปดํฌ๋„ŒํŠธ์— ์ƒ๋Œ€์ ์ด๋‹ค.

int getXOnScreen() int getYOnScreen() int getLocationOnScreen()

์ ˆ๋Œ€ ์ขŒํ‘œ ๊ฐ’ (x,y)์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ด๋“ค ์ขŒํ‘œ๊ฐ’์€ ๊ฐ€์ƒ ํ™”๋ฉด์— ์ƒ๋Œ€์ ์ด๋‹ค.

int getButton()

์–ด๋–ค ๋งˆ์šฐ์Šค ๋ฒ„ํŠผ์˜ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. NOBUTTON, BUTTON1, BUTTON2, BUTTON3 ์ค‘์˜ ํ•˜๋‚˜์ด๋‹ค.

boolean isPopupTrigger()

๋งˆ์šฐ์Šค ์ด๋ฒคํŠธ๊ฐ€ ํŒ์—… ๋ฉ”๋‰ด๋ฅผ ๋‚˜ํƒ€๋‚˜๊ฒŒ ํ•˜๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

String getMouseModifiersText(int)

์ด๋ฒคํŠธ ๋„์ค‘์˜ ์ˆ˜์‹ํ‚ค์™€ ๋งˆ์šฐ์Šค ๋ฒ„ํŠผ์„ ๊ธฐ์ˆ ํ•˜๋Š” ์„ค๋ช…๋ฌธ์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์ฐธ์กฐ ํŽ˜์ด์ง€

Last updated

Was this helpful?