코드 1
package p1;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class KeyListenerEx extends JFrame {
private JLabel keyMessage[];
public KeyListenerEx() {
super("keyListener 예제");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane();
c.setLayout(new FlowLayout());
c.addKeyListener(new 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(e.getKeyText(keyCode));
}});
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, 300);
setVisible(true);
c.setFocusable(true);
c.requestFocus();
}
public static void main(String args[]) {
new KeyListenerEx();
}
}
결과
코드 2
package p1;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MoveHelloLabel extends JFrame {
private JLabel label;
public MoveHelloLabel() {
super("상,하,좌,우 키를 이용하여 텍스트 움직이기");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 300);
setVisible(true);
label = new JLabel("Hello");
label.setSize(30, 50);
label.setLocation(50, 50);
Container c = getContentPane();
c.setLayout(null);
c.add(label);
c.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
int labelX = label.getX();
int labelY = label.getY();
if(keyCode == e.VK_DOWN)
label.setLocation(labelX, labelY + 10);
else if(keyCode == e.VK_UP)
label.setLocation(labelX, labelY - 10);
else if(keyCode == e.VK_LEFT)
label.setLocation(labelX - 10, labelY);
else if(keyCode == e.VK_RIGHT)
label.setLocation(labelX + 10, labelY);
}
});
c.setFocusable(true);
c.requestFocus();
}
public static void main(String[] args) {
new MoveHelloLabel();
}
}
결과