게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
자바AWT KeyEvent 관련 질문입니다.
게시물ID : computer_125919짧은주소 복사하기
작성자 : jAvA
추천 : 0
조회수 : 610회
댓글수 : 0개
등록시간 : 2013/11/09 12:41:43
카드 레이아웃을 공부하려고  프레임의 레이아웃을 카드레이아웃으로 바꾼뒤

패널 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");
}
}

꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호