카드 레이아웃을 공부하려고 프레임의 레이아웃을 카드레이아웃으로 바꾼뒤
패널 3개를 생성해 배경화면을 빨,파,초 로 설정한뒤 프레임에 붙였습니다
그리구 방향키 오른쪽을 눌렀을때 다음카드로 넘어가게 설정했는데
실행후 패널이 넘어간뒤 다시 클릭을 해주지 않으면 또 넘어가지지를 않네요
마우스 이벤트 공부할때는 클릭할때마다 넘어갔는데 키이벤트는 왜 안되는 걸까요?
이건 혹시 궁금하실까봐서;;
제가 하던것을 올려봅니다
package test;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Card extends Frame implements KeyListener{
CardLayout card;
Panel pnlRun1,pnlRun2,pnlRun3;
public Card(){
super("카드레이아웃");
setLayout(card = new CardLayout());
createComponent();
addComponent();
addListener();
setSize(300, 300);
setVisible(true);
}
private void createComponent() {
pnlRun1 = new Panel();
pnlRun1.setBackground(Color.red);
pnlRun2 = new Panel();
pnlRun2.setBackground(Color.green);
pnlRun3=new Panel();
pnlRun3.setBackground(Color.blue);
}
private void addComponent() {
add(pnlRun1,0);
add(pnlRun2,1);
add(pnlRun3,2);
}
private void addListener() {
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
pnlRun1.addKeyListener(this);
pnlRun2.addKeyListener(this);
pnlRun3.addKeyListener(this);
}
public static void main(String[] args) {
new Card();
}
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
System.out.println("keyTyped");
}
@Override
public void keyPressed(KeyEvent e) {
System.out.println("keyPressed");
if(e.getKeyCode()==KeyEvent.VK_A)
card.next(this);
pnlRun2.setFocusable(true);
}
@Override
public void keyReleased(KeyEvent e) {
System.out.println("keyReleased");
}
}