CodeGym
AI Academy
프로모션
CodeGym University
학습
강좌
과제
설문 & 퀴즈
게임
도움말
일정
커뮤니티
사용자
포럼
채팅
아티클
성공 사례
활동
후기
구독
라이트 테마

강의

  • 리뷰
  • 회사 소개
시작
학습 시작
Start learning now
  • 진행 상황
  • 코스
  • 퀘스트 맵
  • 레슨
  • 리스너 (Listeners)와 이벤트 인터페이스

    JAVA 25 SELF
    레벨 50,레슨 0
    Java의 이벤트 모델이 어떻게 동작하는지: 소스가 이벤트를 생성하고, 구독된 리스너가 알림을 받아 반응합니다. Swing의 핵심 리스너 인터페이스 — ActionListener, MouseListener, KeyListener, ChangeListener, DocumentListener — 를 살펴보고, addActionListener로 핸들러를 등록하고 메서드 actionPerformed를 구현하는 방법을 보여 줍니다. JButton/ JFrame에 리스너를 연결하는 연습을 하고, 익명 클래스와 람다 표현식을 비교하며, 흔한 실수와 실무 팁을 논의합니다.
    사용 가능
  • Swing 및 AWT의 이벤트: 기초, 예제

    JAVA 25 SELF
    레벨 50,레슨 1
    AWT/Swing 이벤트 모델에 대한 짧고 실용적인 소개: 버튼 JButton을 만들고, addActionListener로 리스너를 등록한 뒤, actionPerformed에서 처리합니다. 익명 클래스와 람다식, 자주 쓰는 리스너들( MouseListener/ MouseAdapter, KeyAdapter, DocumentListener)을 살펴보고, JFrame, JButton, JLabel을 기반으로 미니 애플리케이션을 작성하며, 호출 순서와 흔한 실수(처리기에서의 무거운 작업, 람다에서 변수의 final 요구, 잊어버린 addActionListener, 리스너 제거, SwingWorker 사용)를 확인합니다.
    사용 가능
  • 사용자 정의 이벤트 생성과 처리

    JAVA 25 SELF
    레벨 50,레슨 2
    이 강의에서는 Java에서 사용자 정의 이벤트를 설계하는 방법을 다룹니다: java.util.EventObject를 기반으로 이벤트 클래스를 만들고, java.util.EventListener를 통해 리스너 인터페이스를 정의하며, 구독/해제 메커니즘( add...Listener/ remove...Listener)과 알림( fire...)을 추가합니다. DataLoader와 카운터 예제로 실습을 살펴보고, 익명 클래스와 람다 표현식으로 처리하는 방법, 그리고 전형적인 오류들(리스너에서 발생한 예외, 메모리 누수, ConcurrentModificationException)도 함께 분석합니다.
    사용 가능
  • Observer 패턴 (관찰자)

    JAVA 25 SELF
    레벨 50,레슨 3
    행동 패턴 "관찰자(Observer)": Subject와 Observer의 역할, addObserver/ removeObserver로 구독/해지, 그리고 notifyObservers 메서드로 알림을 발송합니다. Java의 이벤트 모델과의 연관: button. addActionListener( listener) ; → actionPerformed() 호출. 예제 실습(온도계와 에어컨, 미니 카운터와 람다)과 함께, 왜 java.util.Observable/ Observer가 폐기되었는지와 현대적인 접근법을 살펴봅니다.
    사용 가능
  • EDT 스레드와 UI의 오래 걸리는 작업

    JAVA 25 SELF
    레벨 50,레슨 4
    이 강의에서는 UI 이벤트 처리 스레드인 EDT(Swing)와 그에 상응하는 JavaFX Application Thread가 무엇인지, 왜 UI 컴포넌트가 스레드 세이프하지 않은지, 그리고 무거운 작업 중 창이 ‘먹통’처럼 보이는 이유를 설명합니다. 또한 올바른 기법을 보여 줍니다: new Thread(...)로 계산을 백그라운드로 분리하고, SwingUtilities.invokeLater와 Platform.runLater 호출로 인터페이스를 갱신하며, 진행률·취소·에러 처리를 위해 고수준 도구인 SwingWorker<T, V>와 Task<V>/ Service<V>를 사용하는 방법.
    사용 가능
학습
  • 등록
  • Java 과정
  • 과제 도움
  • 요금
  • Java 문법
커뮤니티
  • 사용자
  • 아티클
  • 포럼
  • 채팅
  • 성공 사례
  • 활동
  • 제휴 프로그램
회사
  • 회사 소개
  • 연락처
  • 후기
  • 보도자료실
  • CodeGym for EDU
  • FAQ
  • 지원
CodeGymCodeGym 은(는) 처음부터 Java 프로그래밍을 배우기 위한 온라인 코스입니다. 이 과정은 초보자가 Java를 마스터하기에 완벽한 방법입니다. 즉시 검증 기능이 포함된 1200개 이상의 과제와 Java 기초 이론의 필수 범위를 제공합니다. 학습 성공을 돕기 위해 퀴즈, 코딩 프로젝트, 효율적인 학습법 관련 콘텐츠, Java 개발자 경력 관련 자료 등 동기 부여 기능들을 구현했습니다.
팔로우하기
인터페이스 언어
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語
한국어
Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Programmers Are Made, Not Born" © 2026 CodeGym
MastercardVisa
"Programmers Are Made, Not Born" © 2026 CodeGym