Java의 이벤트 처리: 그것이 무엇이며 어떻게 작동합니까?

게시 됨: 2020-03-21

Windows용 Java 응용 프로그램을 포함하여 그래픽 사용자 인터페이스 또는 GUI 기반의 모든 프로그램은 이벤트에 의해 구동됩니다. Java 애플리케이션과 같은 프로그램이 유용하려면 사용자의 명령이나 입력에 대한 응답을 제공해야 합니다. Java 응용 프로그램에는 사용자 작업을 캡처하는 이벤트가 있습니다. Java에서 이벤트 처리에 대해 논의하기 전에 이벤트에 대해 논의하는 것으로 시작하겠습니다.

목차

이벤트란 무엇입니까?

이벤트는 모든 프로그래밍 언어에서 동일한 의미와 중요성을 갖습니다. 이는 사용자가 제어하는 ​​외부 효과로, 다양한 사용자 작업에 대한 응답을 기록하기 위해 미리 정의된 조건에 따라 애플리케이션이 동작하도록 합니다. 이벤트는 GUI 내에서 변경 사항이 발생할 때 생기를 불어넣는 개체로 불릴 수도 있습니다.

Java 이벤트의 예로는 문자 또는 텍스트 입력, 콤보 상자 클릭, 버튼 클릭 또는 사용자 측의 기타 작업이 있습니다. 이러한 작업은 이벤트를 트리거한 다음 해당 이벤트와 관련된 이벤트 개체를 생성합니다.

예를 들어, 사용자가 일부 데이터(이벤트를 트리거하는 사용자 작업)를 입력하면 응용 프로그램은 대화 상자를 표시하거나 정보(이벤트 개체)를 표시하여 출력을 생성합니다. 이러한 이벤트 관련 동작은 Java의 이벤트 처리 메커니즘의 일부이며 Swing GUI 라이브러리에 있습니다. 모든 이벤트의 소스와 이벤트 리스너가 연결되어야 한다는 점에 유의하는 것이 중요합니다. 그렇지 않은 경우 이벤트를 트리거해도 작업이 수행되지 않습니다.

프로그램이나 애플리케이션이 이벤트 기반이어야 하는 이유는 무엇입니까?

이벤트 처리가 등장하기 전에 프로그램은 주어진 시간에 무엇을 하고 있었는지 알기 위해 모든 사용자 정보를 자체적으로 수집해야 했습니다. 이것은 실행되거나 초기화된 후 프로그램이 항상 사용자가 무언가를 하기를 기다리는 큰 반복 루프에 있음을 의미합니다.

따라서 프로그램은 버튼 누르기에서 슬라이더 이동에 이르기까지 모든 작업을 찾고 있었습니다. 이용자 측에서 일이 발생한 것을 알게 된 후 적절한 대응을 할 수 있도록 준비했습니다. 이것을 폴링이라고 합니다. 폴링은 작업을 완료하지만 종종 너무 관리하기 어렵고 시간이 많이 걸리는 작업으로 나타납니다.

읽기: Java 개발자 인터뷰 질문 및 답변

현대 응용 프로그램에 사용하는 것을 고려한다면 요구 사항에 실제로 맞지 않습니다. 폴링이 최신 응용 프로그램에 적합하지 않은 두 가지 주요 이유는 폴링이 모든 이벤트 관련 코드를 큰 반복 루프에 넣고 이 위치 내에서 발생하는 상호 작용이 너무 복잡하다는 것입니다. 또한 폴링은 프로그램이 끝없는 루프에 들어가게 하여 사용자의 조치에 대한 보장 없이 CPU 주기를 소모하게 만듭니다.

Abstract Window Toolkit 또는 AWT는 앞서 논의된 문제를 해결하기 위해 다른 작업 모델과 연결되었습니다. 이 새로운 모델은 이벤트 기반 프로그래밍입니다. AWT를 사용하면 프로그램이 사용자 생성 이벤트를 찾을 필요가 없습니다. 이 작업을 수행하는 것은 Java 런타임입니다. 이벤트가 발생하는 즉시 프로그램을 알립니다. 귀중한 리소스를 고갈로부터 절약하고 사용자 상호 작용을 더 잘 처리합니다.

Java의 이벤트 핸들러는 무엇이며 어떻게 작동합니까?

이제 다루기로 한 주요 주제에 대해 논의해 보겠습니다. Java에서 이벤트 처리는 어떻게 작동합니까?

앞서 언급했듯이 이벤트는 애플리케이션이 특정 방식으로 작동하도록 하는 사용자 작업 또는 외부 효과입니다. Java에서 텍스트 상자, 버튼 등을 포함한 AWT 구성 요소는 이벤트 생성을 담당합니다. 이벤트가 생성되자마자 리스너는 이벤트를 처리하고 적절한 작업을 수행합니다.

Java에서 이벤트 처리는 네 가지 요소로 구성됩니다. 이벤트 핸들러라고 부를 수도 있습니다.

1. 이벤트 소스 : 이벤트를 발생시키는 이벤트 소스는 대부분 AWT 컴포넌트이다. java.awt.component 명령을 실행 하여 이벤트 생성에 역할이 있을 수도 있고 없을 수도 있는 구성 요소에 대해 알아볼 수 있습니다. 구성 요소는 원래 소스 클래스의 하위 클래스입니다. 이벤트 소스는 텍스트 상자, 콤보 상자, 버튼 등 무엇이든 될 수 있습니다.

읽기: Java의 MVC 아키텍처

2. 이벤트 클래스 : Java에서 이벤트 생성과 관련된 거의 모든 구성 요소를 설명하는 클래스입니다. 이벤트 유형이라고도 합니다. 다음은 가장 일반적인 이벤트 클래스입니다.

  • ActionEvent : 이 이벤트 클래스 또는 이벤트 유형은 버튼이나 목록 항목과 같은 그래픽 요소의 클릭과 관련된 이벤트를 나타냅니다. 이 클래스와 관련된 리스너는 ActionListener입니다.
  • KeyEvent : 이 이벤트 클래스는 키를 눌렀다 떼는 것과 관련된 이벤트를 나타냅니다. 이 클래스와 연결된 수신기는 KeyListener입니다.
  • ContainerEvent : 이 이벤트 유형은 GUI 컨테이너에서 발생하는 이벤트를 나타냅니다. 이 클래스는 사용자 작업이 GUI에서 개체를 추가하거나 제거하는 모든 이벤트와 연결됩니다. 이 클래스의 관련 수신기는 ContainerListener입니다.
  • MouseEvent : 이 클래스는 마우스를 클릭하거나 누르는 것과 관련된 모든 이벤트를 나타냅니다. 이 클래스의 리스너는 MouseListener입니다.
  • WindowEvent : 이 이벤트 클래스 또는 유형은 창과 관련된 모든 작업을 포함하는 이벤트를 나타냅니다. 창 닫기, 활성화 또는 비활성화는 이 클래스에 속합니다. 이 클래스의 관련 수신기는 WindowListener입니다.

3. 이벤트 리스너(Event Listeners ) : 구현된 다른 클래스에서 사용할 수 있는 다양한 메소드를 제공하는 Java의 인터페이스입니다. 이벤트 리스너의 역할은 이벤트를 수신한 다음 이벤트가 발생할 때 적절하게 처리하는 것입니다. Java의 거의 모든 구성 요소에는 해당 구성 요소가 생성하는 모든 이벤트를 처리하는 전용 수신기가 있습니다. ActionListener는 목록, 버튼, 텍스트 필드 및 메뉴와 관련된 이벤트를 처리합니다.

4. 이벤트 어댑터 : 프로그램이 리스너가 재정의할 수 있는 추상 메서드를 너무 많이 제공하면 컴파일하기 어려울 수 있습니다. 예를 들어 프레임을 닫고 싶다면 재정의해야 하는 7개의 WindowListener 추상 메서드가 있습니다. 복잡성과 무거운 코딩을 줄이기 위해 Java에는 이벤트 어댑터가 있습니다. 이벤트 어댑터는 이미 재정의된 추상 메서드입니다.

결론

여러 이벤트 소스와 리스너가 서로 상호 작용할 수 있음을 기억하는 것이 중요합니다. 따라서 동일한 클래스에 속하는 여러 이벤트를 단일 수신기에서 처리할 수 있습니다. 이는 하나의 리스너가 유사한 작업을 수행하는 동일한 구성 요소와 관련된 모든 이벤트를 처리할 수 있음을 의미합니다. 비슷한 줄에서 단일 이벤트는 프로그램 설계에서 허용하는 경우에만 둘 이상의 리스너에서 처리할 수 있습니다.

말이된다?

네?

아니요?

Java에서 이벤트 처리에 대한 광범위한 세션에 대해 알아보려면 당사에 연락하십시오. 당신은 그것을 후회하지 않을 것입니다!

웹 개발을 위한 Java에 대해 자세히 알아보려면 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 PG 디플로마를 확인하세요. 이 PG 디플로마는 일하는 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육, 9개 이상의 프로젝트 및 과제를 제공합니다. IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

당신의 꿈의 직업에 착륙

소프트웨어 개발에서 업그레이드 및 IIIT-BANGALORE의 PG 디플로마
더 알아보기