본문 바로가기
Java

[JAVA] Jdatepicker 사용해 캘린더 생성하고 날짜 선택하기

by teamnova 2023. 11. 24.

안녕하세요. 이번 포스팅에서는 jdatepicker 라는 라이브러리를 사용해 swing으로 캘린더를 생성하고 유저가 선택한 날짜를 표시하는 예제를 알려드리겠습니다.

우선 jdatepicker 라이브러리를 다운받습니다.

jdatepicker-1.3.2.jar
0.03MB

그런 다음 라이브러리를 설치해줍니다. 

project structure -> Modules→ 자바 프로젝트 클릭 → Dependencies → + 버튼 클릭 → JARs or directories

 

다음은 전체 코드입니다. 

import net.sourceforge.jdatepicker.impl.JDatePanelImpl;
import net.sourceforge.jdatepicker.impl.JDatePickerImpl;
import net.sourceforge.jdatepicker.impl.UtilDateModel;
import javax.swing.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
// 필요한 라이브러리와 클래스들을 가져옵니다.

public class JDatePickerEx extends JFrame {
//JDatePickerEx라는 이름의 클래스를 선언하며, 이 클래스는 JFrame을 확장(extends)하여 GUI 프레임을 생성할 수 있습니다
public JDatePickerEx() {
UtilDateModel model = new UtilDateModel();
//날짜를 저장하고 관리하기 위해 UtilDateModel 객체를 생성합니다.
JDatePanelImpl datePanel = new JDatePanelImpl(model);
//날짜를 선택할 수 있는 패널(JDatePanelImpl)을 생성하고, 앞서 생성한 model을 인자로 전달하여 연결합니다.
JDatePickerImpl datePicker = new JDatePickerImpl(datePanel);
//실제로 사용자에게 보여지는 날짜 선택 위젯(JDatePickerImpl)을 생성하고, 앞서 생성한 datePanel을 인자로 전달합니다.
add(datePicker);
setBounds(300,300,400,400);
//프레임의 시작 위치를 (300, 300)으로 설정하고, 크기를 400x400 픽셀로 지정합니다.

// 날짜가 변경될 때마다 호출되는 listener 추가
model.addPropertyChangeListener(new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
if ("value".equals(evt.getPropertyName())) {
System.out.println(model.getValue()); // 선택한 날짜를 출력
}
}
});

setVisible(true);
}

public static void main(String[] args) {
new JDatePickerEx();
}
}

 

다음은 시연 영상입니다.