JavaFX - TextField输入多个语句的验证

时间:2016-08-02 12:22:15

标签: java validation input javafx textfield

我试图找出,当我需要例如日期输入时,如何对文本字段进行输入验证。它必须采用类似于31.8.2016的格式,并且必须是今天或更晚的日期。这是两个不同的检查。

我能想到的唯一方法是创建一个布尔方法,它将检查日期是过去还是将来。但我需要创建一种新的方法来检查它是否采用正确的格式,这将更难,但我认为这不是正确的方法。

1 个答案:

答案 0 :(得分:0)

我通常创建一个如下所示的日期类:

公共课日期{

    private boolean validDay = false;
    private boolean validMonth = false;
    private boolean validYear = false;
    private int day;
    private int month;
    private int year;
    private Calendar cal = Calendar.getInstance();

    public Date(int day, int month, int year){
        /*
         *All of these conditions can also be individually used to check the conditions you 
         *want to check. simply create 3 texfields and put them in a HBox all values must be entered
         *separately !
         */
        if(day>=cal.get(Calendar.DAY_OF_MONTH) && day<=cal.getActualMaximum(Calendar.DAY_OF_MONTH)){
            this.day = day;
            this.validDay = true;
        }
        else{
            //TODO: handle
        }
        if(month>=cal.get(Calendar.MONTH) && month<=12){
            this.month = month;
            this.validMonth= true;
        }
        else{
            //TODO: handle
        }
        if(year>=cal.get(Calendar.YEAR)){
            this.year = year;
            this.validYear = true;
        }
        else{
            //TODO: handle
        }
    }
    public boolean isDateValid(){
        return validDay && validMonth && validYear;
    }
    public String getDate(){
        return day+"."+month+"."+year;
    }
    public int getDay() {
        return day;
    }
    public int getMonth() {
        return month;
    }
    public int getYear() {
        return year;
    }
}

您可以使用字符串拆分器和包装箱日期拆分输入! 你也可以添加set方法! 有很多方法可以做到这一点! 我希望这有帮助!