Java
[JAVA] Jdatepicker 사용해 캘린더 생성하고 날짜 선택하기
teamnova
2023. 11. 24. 12:00
728x90
안녕하세요. 이번 포스팅에서는 jdatepicker 라는 라이브러리를 사용해 swing으로 캘린더를 생성하고 유저가 선택한 날짜를 표시하는 예제를 알려드리겠습니다.
우선 jdatepicker 라이브러리를 다운받습니다.
그런 다음 라이브러리를 설치해줍니다.
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();
}
}
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();
}
}
다음은 시연 영상입니다.