2012-11-05 2 views
2

필자가 작성한 프로그램을 사용하면 사용자가 JXDatePicker에서 날짜를 클릭하여 작업이 완료된 날짜를 설정할 수 있습니다. JXDatePicker에서 미래의 날짜를 선택하지 못하게하고 싶습니다. 미래의 날짜를 선택하는 프로그램이 유효하지 않기 때문입니다.JXDatePicker/JXMonthView에서 날짜 사용 중지

JXDatePickers에 JXMonthView가 포함되어 있고 날짜 선택기 또는 월보기에서 개별/날짜 범위를 사용하지 않도록 설정할 수있는 것 같지 않습니다. 개별 날짜와 날짜 범위의 배경색을 변경할 수 있으므로 미래 날짜를 별도의 색으로 만들 수 있습니다. 그런 다음 사용자가 일정을 클릭하여 미래의 날짜를 허용하지 않을 때마다 유효성 검사를 추가 할 수 있습니다. 그러나, 내가 calendar.setMaxDate (오늘)와 같은 것을 말할 수 있다면 그것은 훨씬 더 깨끗합니다.

기능을 손으로 코딩하는 것보다 쉬운 방법이 있는지 알고있는 사람이 있습니까? 아마도 다른 날짜 선택 도구 구성 요소가이 문제를 해결할 것입니까? 사람이 그렇게하는 간단한 방법을 알고있는 경우, 비록이 사용 JXDatePickers 달성에 대한 제안에 아직 http://jdatepicker.com/tour-date-restriction.html

열기를 참조하십시오 - JDatePicker 여기서 일 것 같은 연구의 몇 분 후

답변

5

, 당신은 상단 지정할 수 있습니다 (JavaDoc을에서 촬영) 낮은 boundries

JXDatePicker picker = new JXDatePicker(); 
Calendar calendar = picker.getMonthView().getCalendar(); 
// starting today if we are in a hurry 
calendar.setTime(new Date()); 
picker.getMonthView().setLowerBound(calendar.getTime()); 
// end of next week 
CalendarUtils.endOfWeek(calendar); 
calendar.add(Calendar.WEEK_OF_YEAR); 
picker.getMonthView().setUpperBound(calendar.getTime()); 

오늘이 주말로. 코드의

+0

그레이트,이 완벽하게 작동이 클래스를 적용하려면이 같다. 내가 오래된 javadocs를보고 있었음을 알았습니다. http://download.java.net/javadesktop/swinglabs/releases/0.8/docs/api/에있는 setLower/UpperBound는 아직 구현되지 않았습니다. 많은 고마워,이게 내가 찾고 있었던거야. –

+0

오래전에 놀았 기 때문에 나는 그걸 알았을 뿐이었다;) - 나는 현재 1.6.4를 믿는다. – MadProgrammer

0

, 그것은 보인다. 이것은 기본적에서 유효, 선택 가능한 날짜를 제한 할 경우에만 범위로 날짜 선택을 제한하려면

0
package org.chillies.validator; 
import java.util.Date; 
@SuppressWarnings("deprecation") 
public class DateValidator { 
public Date getlowerBoundDate(){ 
    String date; 
    Date date1=new Date(); 
    Integer year=1900+date1.getYear(); 
    date="01-Apr-"+year; 
    return new Date(date); 
} 
public Date getupperBoundDate(){ 
    String date; 
    Date date1=new Date(); 
    Integer year=1900+date1.getYear(); 
    date="31-Mar-"+(year+1);//you can set date as you wish over here 
    return new Date(date); 
} 
} 

나머지는

datePicker.setBorder(null); 
    DateValidator datevalidator=new DateValidator(); 
    datePicker.getMonthView().setLowerBound(datevalidator.getlowerBoundDate()); 
    datePicker.getMonthView().setUpperBound(datevalidator.getupperBoundDate()); 
관련 문제