Java Swing μ΄λ²€νΈ μ²λ¦¬: μ¬μ©μμμ μνΈμμ© μ΄ν΄νκΈ°
μλ° μ€μ(Java Swing) μ ν리μΌμ΄μ μμ λ²νΌ ν΄λ¦, ν€λ³΄λ μ λ ₯ λ± μ¬μ©μμ λμμ μ²λ¦¬νλ ν΅μ¬ λ©μ»€λμ¦μ μ΄λ²€νΈ 리μ€λ(Event Listener) λͺ¨λΈμ λλ€. 2026λ κΈ°μ€ νλμ μΈ μλ° λ¬Έλ²(λλ€μ λ±)μ νμ©ν ν¨μ¨μ μΈ μ΄λ²€νΈ μ²λ¦¬ λ°©λ²μ μ 리ν©λλ€.
1. μ΄λ²€νΈ 리μ€λ λͺ¨λΈμ ꡬ쑰
μ€μμ μ΄λ²€νΈ μ²λ¦¬λ 'λ°μμ§(Source)', 'μ΄λ²€νΈ κ°μ²΄(Event Object)', **'리μ€λ(Listener)'**μ μΈ μμλ‘ κ΅¬μ±λ©λλ€.
- Source: μ΄λ²€νΈκ° λ°μνλ μ»΄ν¬λνΈ (μ:
JButton) - Event Object: λ°μν μ΄λ²€νΈμ λν μ 보λ₯Ό λ΄μ κ°μ²΄ (μ:
ActionEvent) - Listener: μ΄λ²€νΈλ₯Ό κ°μνκ³ μλ€κ° λ°μ μ λ‘μ§μ μννλ μΈν°νμ΄μ€ (μ:
ActionListener)
2. μ£Όμ μ΄λ²€νΈ μ²λ¦¬ λ°©λ²
β λ²νΌ ν΄λ¦ μ²λ¦¬ (ActionListener)
κ°μ₯ λ§μ΄ μ°μ΄λ λ°©μμ λλ€. κ³Όκ±°μλ μ΅λͺ ν΄λμ€λ₯Ό μΌμ§λ§, νμ¬λ λλ€μμ μ¬μ©νμ¬ κ°κ²°νκ² μμ±ν©λλ€.
JButton button = new JButton("ν΄λ¦νμΈμ");
// λλ€μμ μ΄μ©ν μ΄λ²€νΈ μ²λ¦¬
button.addActionListener(e -> {
System.out.println("λ²νΌμ΄ ν΄λ¦λμμ΅λλ€!");
JOptionPane.showMessageDialog(null, "μλ
νμΈμ!");
});β‘ λ§μ°μ€ λ° ν€λ³΄λ μ΄λ²€νΈ
νΉμ μ»΄ν¬λνΈ μλ‘ λ§μ°μ€λ₯Ό μ¬λ¦¬κ±°λ ν€λ³΄λ ν€λ₯Ό λλ₯΄λ λμμ κ°μ§ν©λλ€.
- MouseListener:
mouseClicked,mouseEntered,mouseExitedλ± μ²λ¦¬. - KeyListener:
keyPressed,keyReleasedλ± μ²λ¦¬.
Tip: λͺ¨λ λ©μλλ₯Ό μ€λ²λΌμ΄λνκΈ° λ²κ±°λ‘λ€λ©΄
MouseAdapterλKeyAdapterλ₯Ό μμλ°μ νμν λ©μλλ§ κ΅¬νν μ μμ΅λλ€.
3. μ€μ: μ΄λ²€νΈ μ²λ¦¬ μ μ£Όμμ¬ν (EDTμ μ€λ λ)
μ§λ κΈμμ κ°μ‘°νλ―, μ€μμ μ±κΈ μ€λ λ λͺ¨λΈμ λλ€. μ΄λ²€νΈ 리μ€λ λ΄λΆμ μ½λλ **EDT(Event Dispatch Thread)**μμ μ€νλ©λλ€.
- κΈμ§ μ¬ν: 리μ€λ λ΄λΆμμ λ€νΈμν¬ ν΅μ , λμ©λ νμΌ μ½κΈ° λ± 'λ¬΄κ±°μ΄ μμ 'μ μ§μ μννλ©΄ μ λ©λλ€. μμ μ΄ λλ λκΉμ§ νλ©΄μ΄ λ©μΆκ² λ©λλ€.
- ν΄κ²° λ°©λ²: μκ°μ΄ 걸리λ μμ
μ
SwingWorkerν΄λμ€λ₯Ό μ¬μ©νκ±°λ λ³λμ μ€λ λμμ μ²λ¦¬ν λ€, UI μ λ°μ΄νΈλ§ λ€μSwingUtilities.invokeLater()λ‘ λκ²¨μΌ ν©λλ€.
button.addActionListener(e -> {
new Thread(() -> {
// 1. λ¬΄κ±°μ΄ μμ
μν (μ: DB μ‘°ν)
String data = fetchDataFromDB();
// 2. UI μ
λ°μ΄νΈλ λ€μ EDTμμ μ€ν
SwingUtilities.invokeLater(() -> {
label.setText(data);
});
}).start();
});4. μμ½
- κ°λ¨ν μ‘μ
μ λλ€μκ³Ό
ActionListenerλ‘ μ²λ¦¬ν©λλ€. - 볡μ‘ν λ§μ°μ€/ν€λ³΄λ λμμ Adapter ν΄λμ€λ₯Ό νμ©ν΄ μ½λλ₯Ό κ°κ²°νκ² μ μ§ν©λλ€.
- μ¬μ©μ κ²½νμ μν΄ λ¬΄κ±°μ΄ μμ μ λ°λμ λ³λ μ€λ λλ‘ λΆλ¦¬ν©λλ€.
μ΄λ²€νΈ μ²λ¦¬λ₯Ό λ§μ€ν°νλ©΄ μ μ μΈ UIμ μλͺ λ ₯μ λΆμ΄λ£μ μ μμ΅λλ€.