학교/2-2학기(Java)
[12주차] 11/20(수) 강의내용
C0MPAS
2024. 11. 20. 20:51
10.5 KeyEvent 와 KeyListener
- 컴포넌트에 포커스 주기
- Key 이벤트와 KeyListener
- 입력된 키 판별
// 예제 10-6: 다양한 KeyEvent와 KeyListener 활용
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class KeyListenerEx extends JFrame{
private JLabel[] keyMessage;
public KeyListenerEx() {
setTitle("keyListener 예제");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane();
c.setLayout(new FlowLayout());
c.addKeyListener(new MyKeyListener());
keyMessage = new JLabel[3];
keyMessage[0] = new JLabel(" getKeyCode() ");
keyMessage[1] = new JLabel(" getKeyChar() ");
keyMessage[2] = new JLabel(" getKeyText() ");
for(int i=0; i<keyMessage.length; i++) {
c.add(keyMessage[i]);
keyMessage[i].setOpaque(true);
keyMessage[i].setBackground(Color.YELLOW);
}
setSize(300, 150);
setVisible(true);
c.setFocusable(true);
c.requestFocus();
}
class MyKeyListener extends KeyAdapter{
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
char keyChar = e.getKeyChar();
keyMessage[0].setText(Integer.toString(keyCode));
keyMessage[1].setText(Character.toString(keyChar));
keyMessage[2].setText(KeyEvent.getKeyText(keyCode));
System.out.println("KeyPressed");
}
public void keyReleased(KeyEvent e) {
System.out.println("KeyReleased");
}
public void keyTyped(KeyEvent e) {
System.out.println("KeyTyped");
}
}
public static void main(String[] args) {
new KeyListenerEx();
}
}
출처: 명품 JAVA Programming(개정 5판), 생능출판사