javafx 调用java_Java验证(javafx)
javafx 調(diào)用java
驗(yàn)證是核心javafx框架所缺少的一件事。 為了彌補(bǔ)這一空白, controlsfx中已經(jīng)存在一個(gè)第三方驗(yàn)證庫 。 但是,我有一個(gè)問題:它不是在考慮FXML的情況下創(chuàng)建的。 這并不是說它不是一個(gè)很好的庫,只是錯(cuò)過了這個(gè)細(xì)節(jié),對(duì)我來說這是不可行的。 因此,我決定創(chuàng)建自己的驗(yàn)證框架: FXValidation 。
這個(gè)怎么運(yùn)作
為了向您展示FXValidation的工作方式,讓我們從頭開始,向您展示一個(gè)使用該庫時(shí)FXML文件的外觀示例。 這是一個(gè)登錄屏幕的簡(jiǎn)單示例,其中用戶需要輸入用戶名和密碼:
<Label><text>User Name:</text> </Label> <TextField fx:id="userName" id="userName"></TextField> <Label><text>Password:</text> </Label> <PasswordField fx:id="password" id="password"></PasswordField><Button text="Submit" onAction="#submitPressed"></Button><fx:define><RequiredField fx:id="requiredField1" ><srcControl><fx:reference source="userName"></fx:reference></srcControl></RequiredField><RequiredField fx:id="requiredField2" ><srcControl><fx:reference source="password"></fx:reference></srcControl></RequiredField> </fx:define><ErrorLabel message="Please enter your username"><validator><fx:reference source="requiredField1"></fx:reference></validator> </ErrorLabel> <ErrorLabel message="Please enter your password"><validator><fx:reference source="requiredField2"></fx:reference></validator> </ErrorLabel>在FXML代碼段的開頭,我定義了用于輸入登錄詳細(xì)信息的文本字段和密碼字段。 除此之外,還有一個(gè)提交按鈕,以便用戶可以將登錄信息發(fā)送到系統(tǒng)。 之后是有趣的部分。 首先,我們定義幾個(gè)RequiredField類型的驗(yàn)證器。 該驗(yàn)證器檢查所輸入的內(nèi)容是否為空,如果是,則將其存儲(chǔ)在標(biāo)志中以確認(rèn)錯(cuò)誤。 FXValidation框架中還內(nèi)置了其他類型的驗(yàn)證器,但我們將稍作介紹 。 最后,我們定義了幾個(gè)ErrorLabel。 這是實(shí)現(xiàn)IValidationDisplay的節(jié)點(diǎn),任何實(shí)現(xiàn)此接口的類都是一個(gè)類,其目的是在驗(yàn)證過程中出現(xiàn)錯(cuò)誤時(shí)向用戶顯示信息。 當(dāng)前,框架中只有此類之一:ErrorLabel。 最后,我們需要在用戶單擊“提交”按鈕時(shí)調(diào)用驗(yàn)證,這是在控制器中的Submit方法上完成的:
public void submitPressed(ActionEvent actionEvent) {requiredField1.eval();requiredField2.eval(); }這將觸發(fā)對(duì)我們定義的驗(yàn)證器的驗(yàn)證。 如果有錯(cuò)誤,ErrorLabels將顯示在其中定義的錯(cuò)誤消息。 驗(yàn)證器還有另外一件事:驗(yàn)證程序生效后,它們將css樣式類“錯(cuò)誤”添加到每個(gè)有錯(cuò)誤的控件中。 這使程序員只要在控件上附加了錯(cuò)誤類,就可以使用css改變控件的樣式。 程序員可以通過檢查驗(yàn)證器中的hasErrors屬性來檢查驗(yàn)證過程中的錯(cuò)誤。
這是我們的示例:
細(xì)節(jié)
從上面顯示的內(nèi)容可以看出,基本上涉及兩種類型的類:
- 驗(yàn)證器:負(fù)責(zé)檢查目標(biāo)控件( srcControl )是否符合驗(yàn)證規(guī)則。 如果沒有,它將“錯(cuò)誤”樣式類附加到目標(biāo)控件,將其hasErrors屬性設(shè)置為true。 所有驗(yàn)證器都從ValidatorBase擴(kuò)展。
- 錯(cuò)誤顯示信息:負(fù)責(zé)通知用戶驗(yàn)證發(fā)生了什么問題,可能是必填字段,字段內(nèi)容沒有必要的字符數(shù),等等。所有這些類都實(shí)現(xiàn)IValidationDisplay 。
庫中目前有3個(gè)驗(yàn)證器,并且只有一個(gè)錯(cuò)誤“顯示器”即ErrorLabel。 驗(yàn)證器如下:
- RequiredField:檢查目標(biāo)控件( srcControl )是否具有內(nèi)容,如果沒有,則給出錯(cuò)誤。
- CardinalityValidator:檢查目標(biāo)控件( srcControl )是否至少具有最小字符數(shù)和最大最大字符數(shù)。
- RegexValidator:根據(jù)給定的正則表達(dá)式檢查目標(biāo)控件( srcControl )的內(nèi)容
就是這樣。
翻譯自: https://www.javacodegeeks.com/2014/08/validation-in-java-javafx.html
javafx 調(diào)用java
總結(jié)
以上是生活随笔為你收集整理的javafx 调用java_Java验证(javafx)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java记录
- 下一篇: 备案和确认书(备案和确认)