JAVA 그래 픽 인터페이스 (GUI) 의 이벤트 처리 메커니즘
Created with Rapha ë l 2.1.0 외부 역할 이벤트 원본 등 록 된 이벤트 프로세서
이벤트 소스 는 다양한 유형의 사건 을 만 들 수 있 고 다양한 유형의 사건 감청 기 를 등록 할 수 있 습 니 다.구성 요소 에 어떤 이벤트 가 발생 하면 해당 이벤트 대상 을 생 성 합 니 다. 이 대상 에는 이 이벤트 와 관련 된 각종 정보 가 포함 되 어 있 습 니 다.이 대상 은 상응하는 등 록 된 이벤트 프로세서 로 전달 되 었 는데, 이때 이벤트 처리 방법 이 실행 되 었 다.
이벤트 모니터
사건 감청 기 는 라 이브 러 리 의 인터페이스 로 모든 사건 류 는 이러한 사건 대상 을 감청 하 는 인터페이스 가 있다.인터페이스 에서 이 사건 을 처리 하 는 추상 적 인 방법 을 정의 했다.인 터 페 이 스 는 추상 적 인 정의 일 뿐 사용 하려 면 반드시 실현 해 야 한다.그래서 매번 사건 을 처리 하 는 것 은 대응 하 는 인터페이스의 실현 클래스 를 호출 하 는 방법 이다.이벤트 원본 에 이벤트 가 발생 하고 이벤트 대상 을 생 성 할 때 이 대상 은 이벤트 프로세서 로 보 내 집 니 다. 프로세서 호출 인터페이스 구현 클래스 대상 에 해당 하 는 방법 으로 이 사건 을 처리 합 니 다.해당 이벤트 모니터 를 시작 하려 면 프로그램 에 등록 해 야 합 니 다.
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
/** * * * @author jianggujin * */
public class EventDemo extends JFrame {
public EventDemo()
{
super("EventDemo");
JButton btn1 = new JButton(" 1");
//
btn1.addActionListener(new ButtonClick());
add(btn1);
setSize(300, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args)
{
new EventDemo();
}
}
/** * * * @author jianggujin * */
class ButtonClick implements ActionListener
{
@Override
public void actionPerformed(ActionEvent e)
{
//
Object obj = e.getSource();
//
if (obj instanceof JButton)
{
JButton srcBtn = (JButton) obj;
System.out.println(" :" + srcBtn.getText());
}
else
{
System.out.println(" ");
}
}
}
단 추 를 누 르 면 이벤트 대상 을 생 성 합 니 다. 대상 에는 이벤트 원본 (단추) 의 정 보 를 등 록 된 이벤트 모니터 로 전송 하고 모니터 는 해당 방법 을 호출 하여 대상 을 전송 합 니 다.
이벤트 종류
JAVA 가 이벤트 응답 을 처리 하 는 클래스 와 감청 인 터 페 이 스 는 대부분 AWT 패키지 에 있 습 니 다.패키지 에는 스윙 구성 요소 에 사용 되 는 이벤트 클래스 와 감청 인터페이스 가 있 습 니 다.AWT 사건 류 는 AWT Event 에서 계승 되 고 그들의 초 류 는 EventObject 이다.AWT 사건 에서 사건 은 저급 사건 과 의미 사건 으로 나 뉜 다.의미 사건 은 일부 저급 사건 에 대한 추상 적 인 요약 으로 단일 또는 여러 개의 저급 사건 의 특정한 특례 의 집합 이다.자주 사용 되 는 저급 사건 은:
이벤트
설명 하 다.
KeyEvent
버튼 을 누 르 고 놓 으 면 이 이벤트 가 발생 합 니 다.
MouseEvent
마우스 누 르 기, 놓 기, 드래그, 이동
FocusEvent
구성 요소 가 초점 을 잃 어 이 이벤트 가 발생 합 니 다.
WindowEvent
창 이 바 뀌 었 습 니 다. 이 이벤트 가 발생 했 습 니 다.
상용 의미 이벤트:
이벤트
설명 하 다.
ActionEvent
단 추 를 누 르 거나 메뉴 를 선택 하거나 텍스트 상자 에서 차 를 되 돌려 주 는 등 이벤트 가 발생 합 니 다.
ItemEvent
다 중 선택 상자, 선택 단 추 를 선택 하거나 목록 을 누 르 면 이 이벤트 가 발생 합 니 다.
일반적인 이벤트 와 이벤트 모니터 는 다음 과 같 습 니 다.
이벤트 종류
대응 하 는 모니터
모니터 인터페이스 의 추상 적 인 방법
Action
ActionListener
actionPerformed(ActionEvent e)
Mouse
MouseListener
mouseClicked(MouseEvent e)、mouseEntered(MouseEvent e)、mouseExited(MouseEvent e)、mousePressed(MouseEvent e)、mouseReleased(MouseEvent e)
MouseMotion
MouseMotionListener
mouseDragged(MouseEvent e)、mouseMoved(MouseEvent e)
Item
ItemListener
itemStateChanged(ItemEvent e)
Key
KeyListener
keyPressed(KeyEvent e)、keyReleased(KeyEvent e)、keyTyped(KeyEvent e)
Focus
FocusListener
focusGained(FocusEvent e)、focusLost(FocusEvent e)
Window
WindowListener
windowActivated(WindowEvent e)、windowClosed(WindowEvent e)、windowClosing(WindowEvent e)、windowDeactivated(WindowEvent e)、windowDeiconified(WindowEvent e)、windowIconified(WindowEvent e)、windowOpened(WindowEvent e)
Component
ComponentListener
componentHidden(ComponentEvent e)、componentMoved(ComponentEvent e)、componentResized(ComponentEvent e)、componentShown(ComponentEvent e)
Text
TextListener
textValueChanged(TextEvent e)
이벤트 어댑터
이벤트 어댑터 는 사실 인터페이스의 실현 클래스 입 니 다. 실제 어댑터 류 는 감청 인터페이스 방법 중의 방법 을 모두 비 우 는 방법 일 뿐 입 니 다.이렇게 하면 이벤트 감청 기 를 정의 할 때 이 실현 클래스 를 계승 하고 필요 한 방법 을 다시 쓸 수 있 으 며 모든 방법 을 덮어 쓸 필요 가 없다.자주 사용 하 는 이벤트 어댑터 클래스 는 다음 과 같 습 니 다.
어댑터
설명 하 다.
MouseAdapter
마우스 이벤트 어댑터
WindowAdapter
창 이벤트 어댑터
KeyAdapter
키보드 이벤트 어댑터
FocusAdapter
포커 스 어댑터
MouseMotionAdapter
마우스 이동 이벤트 어댑터
ComponentAdapter
모듈 소스 어댑터
ContainerAdapter
용기 원본 이벤트 어댑터
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.