Java Swing 00. "Hello Swing!"

BuBuck·2025년 8월 29일

Java Swing

목록 보기
1/3
post-thumbnail

시작하기에 앞서...

Java 언어로 게임을 만들고 싶어진 저는 Java로 게임을 만드는 영상들을 찾아보았습니다. 찾아본 결과 먼저 Swing이란 GUI 라이브러리를 사용한다는 것을 알고 Java Swing에 관해 공부하려고 합니다.


개발 환경 설정

개발 환경 : macOS / IntelliJ IDEA / JDK 17 버전 사용

1. 프로젝트 생성


IntelliJ에서 JavaSwing 라는 이름으로 새 Java 프로젝트를 생성합니다.

2. 패키지 생성

swing00 라는 이름으로 새 패키지를 생성한다.

3. 클래스 생성

main 메서드를 포함하는 Launcher 클래스와 MainWindow 클래스 두 개를 생성한다.


클래스 구현

1. Launcher 클래스 구현

package swing00;

import javax.swing.*;

public class Launcher {
	
    public static void main(String[] args) {
    	SwingUtilities.invokeLater(() -> new MainWindow().setVisible(true));
        
    }
}

Launcher 클래스에서 SwingUtilities.invokeLater() 메서드를 사용하여 Swing 관련 코드가 EDT(Event Dispatch Thread)에서 실행되도록 한다.

  • SwingUtilities.invokeLater() 메서드를 사용하는 이유는 무엇인가?
    Swing 스레드는 안전하지 않으므로, 모든 Swing 관련 코드가 EDT라는 동일한 스레드에서 실행되도록 보장하기 위해 사용한다.
  • EDT(Event Dispatch Thread): Swing GUI 애플리케이션의 모든 화면 관련 작업을 전담하는 유일한 스레드이다.

2. MainWindow 클래스 구현

package swing00;

import javax.swing.*;

public class MainWindow extends JFrame {
	
    public MainWindow() {
    	// 창 제목 설정
    	setTitle("Hello Swing!");
      	
        // 기본 닫기 동작 설정
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        // 창 크기 설정
        setSize(800, 500);
        
        // 창 화면 중앙 배치
        setLocationRelativeTo(null);
    }
    
}

MainWindow 클래스는 JFrame을 상속 받았기 때문에 클래스 자체가 프레임의 한 종류라고 볼 수 있다.

생성자 내에서 프레임을 설정해준다.


프로그램 실행 및 결과 확인

이렇게 모니터 화면의 정중앙에 800 x 500 크기의 "Hello Swing!"이라는 제목의 창이 화면에 나타난 것을 확인할 수 있다.

profile
커피대신 커피(JAVA) 마시기

0개의 댓글