jbutton에 기능을 입히기 위해서는 KeyListener함수에 KeyListner() 인터페이스를 재정의하면 됩니다.
jbutton.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
if(e.getKeyCode() == KeyEvent.VK_S){
x += 5;
jbutton.setLocation(x, y);
}
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
});
그렇다면, 이렇게 정의할 때, 컴퓨터 내부는 어떻게 돌아가는지 알아보겠습니다.
만약에 프로그램이 돌아가고 있는 상태에서 키보드를 입력하게 되면, 프로그램에 KeyEvent의 상태 값이 변경됩니다.
VK(VirtualKeyboard)_S는 S를 눌렀을 때등입니다.
예를들어서 키 이벤트는 한번 변했으므로, 키리스너에 들어가게 됩니다. 키리스너는 그냥 함수입니다. addKeyListner()에 재정의 된 함수를 수행하게 되는 것입니다.
인터페이스를 재정의하게 되면, 해당 함수를 어떻게 수행할 것이지 명시하게 됩니다.
예를들어서 Jbutton내부에 메소드에서는
①Public void A.KeyPressed(KeyEvent e);로 선언이 되어있다. (-> 오버라이드한다)
메소드는 아래와 같을 것이다.(눌렸을때, 뗏을때는 인터페이스일 뿐)
②if(Keyevent.VK_PRESSED){
keyPressed(); 함수 써라.
}
if(Keyevent.VK_PRESSED){
keyPressed();
}
}
등으로 정의가 되어있고, KeyPressed()가 진행되면, 실제 그 내부 함수로 들어가서 수행되게 됩니다.
'프로그래밍 일반 > JAVA' 카테고리의 다른 글
[JAVA] GUI에 이미지 위에 버튼 입힐 때 (0) | 2020.02.23 |
---|---|
[JAVA] IF문 다르게 보기 (0) | 2020.02.22 |
[JAVA] JAVA GUI Component사용하기 - 1 디자인 입히기 (0) | 2020.02.16 |
[JAVA] GUI Jbutton API문서 읽기 (0) | 2020.02.14 |
[JAVA] GUI- JFrame을 만들기 (0) | 2020.02.13 |