日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

JavaFX UI控件教程(九)之Text Field

發(fā)布時(shí)間:2023/12/3 java 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaFX UI控件教程(九)之Text Field 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

翻譯自? ?Text Field

本章討論文本字段控件的功能。

的TextField類(lèi)實(shí)現(xiàn)接受并顯示文本輸入的UI控制。它提供了從用戶(hù)接收文本輸入的功能。與另一個(gè)文本輸入控件一起,PasswordField此類(lèi)擴(kuò)展了TextInput類(lèi),它是通過(guò)JavaFX API提供的所有文本控件的超類(lèi)。

圖8-1顯示了帶有標(biāo)簽的典型文本字段。

圖8-1標(biāo)簽和文本字段

?

創(chuàng)建文本字段

在示例8-1中,文本字段與標(biāo)簽結(jié)合使用,以指示應(yīng)在字段中鍵入的內(nèi)容的類(lèi)型。

示例8-1創(chuàng)建文本字段

Label label1 = new Label("Name:"); TextField textField = new TextField (); HBox hb = new HBox(); hb.getChildren().addAll(label1, textField); hb.setSpacing(10);

您可以創(chuàng)建一個(gè)空文本字段,如例8-1所示,或者創(chuàng)建一個(gè)包含特定文本數(shù)據(jù)的文本字段。要使用預(yù)定義文本創(chuàng)建文本字段,請(qǐng)使用以下TextField類(lèi)的構(gòu)造函數(shù):TextField("Hello World!")。您可以通過(guò)調(diào)用getText方法隨時(shí)獲取文本字段的值。

您可以應(yīng)用類(lèi)的setPrefColumnCount方法TextInput來(lái)設(shè)置文本字段的大小,定義為一次可以顯示的最大字符數(shù)。

使用文本字段構(gòu)建UI

通常,TextField對(duì)象在表單中用于創(chuàng)建多個(gè)文本字段。圖8-2中的應(yīng)用程序顯示三個(gè)文本字段,并處理用戶(hù)在其中輸入的數(shù)據(jù)。

圖8-2 TextFieldSample應(yīng)用程序

例8-2中的代碼片段創(chuàng)建了三個(gè)文本字段和兩個(gè)按鈕,并使用GridPane容器將它們添加到應(yīng)用程序的場(chǎng)景中。當(dāng)您需要為UI控件實(shí)現(xiàn)靈活的布局時(shí),此容器特別方便。

示例8-2向應(yīng)用程序添加文本字段

//Creating a GridPane container GridPane grid = new GridPane(); grid.setPadding(new Insets(10, 10, 10, 10)); grid.setVgap(5); grid.setHgap(5); //Defining the Name text field final TextField name = new TextField(); name.setPromptText("Enter your first name."); name.setPrefColumnCount(10); name.getText(); GridPane.setConstraints(name, 0, 0); grid.getChildren().add(name); //Defining the Last Name text field final TextField lastName = new TextField(); lastName.setPromptText("Enter your last name."); GridPane.setConstraints(lastName, 0, 1); grid.getChildren().add(lastName); //Defining the Comment text field final TextField comment = new TextField(); comment.setPrefColumnCount(15); comment.setPromptText("Enter your comment."); GridPane.setConstraints(comment, 0, 2); grid.getChildren().add(comment); //Defining the Submit button Button submit = new Button("Submit"); GridPane.setConstraints(submit, 1, 0); grid.getChildren().add(submit); //Defining the Clear button Button clear = new Button("Clear"); GridPane.setConstraints(clear, 1, 1); grid.getChildren().add(clear);

花點(diǎn)時(shí)間研究代碼片段。的name,lastName和comment文本字段使用的空構(gòu)造函數(shù)來(lái)創(chuàng)建TextField類(lèi)。與示例8-1不同,此代碼片段中的文本字段不附帶標(biāo)簽。相反,提示字幕會(huì)通知用戶(hù)在文本字段中輸入的數(shù)據(jù)類(lèi)型。該setPromptText方法定義應(yīng)用程序啟動(dòng)時(shí)出現(xiàn)在文本字段中的字符串。當(dāng)示例8-2添加到應(yīng)用程序時(shí),它會(huì)產(chǎn)生如圖8-3所示的輸出。

圖8-3包含提示消息的三個(gè)文本字段

提示文本與文本字段中輸入的文本之間的區(qū)別在于無(wú)法通過(guò)該getText方法獲取提示文本。

在實(shí)際應(yīng)用程序中,輸入到文本字段的數(shù)據(jù)將根據(jù)特定業(yè)務(wù)任務(wù)所需的應(yīng)用程序邏輯進(jìn)行處理。下一節(jié)將介紹如何使用文本字段評(píng)估輸入的數(shù)據(jù)并生成對(duì)用戶(hù)的響應(yīng)。

?

處理文本字段數(shù)據(jù)

如前所述,用戶(hù)輸入文本字段的文本數(shù)據(jù)可以通過(guò)類(lèi)的getText方法獲得TextInput。

學(xué)習(xí)例8-3,學(xué)習(xí)如何處理TextField對(duì)象的數(shù)據(jù)。

示例8-3定義提交和清除按鈕的操作

//Adding a Label final Label label = new Label(); GridPane.setConstraints(label, 0, 3); GridPane.setColumnSpan(label, 2); grid.getChildren().add(label);//Setting an action for the Submit button submit.setOnAction(new EventHandler<ActionEvent>() {@Overridepublic void handle(ActionEvent e) {if ((comment.getText() != null && !comment.getText().isEmpty())) {label.setText(name.getText() + " " + lastName.getText() + ", "+ "thank you for your comment!");} else {label.setText("You have not left a comment.");}}});//Setting an action for the Clear button clear.setOnAction(new EventHandler<ActionEvent>() {@Overridepublic void handle(ActionEvent e) {name.clear();lastName.clear();comment.clear();label.setText(null);} });

Label添加到GridPane容器的控件呈現(xiàn)應(yīng)用程序?qū)τ脩?hù)的響應(yīng)。當(dāng)用戶(hù)單擊“提交”按鈕時(shí),該setOnAction方法將檢查comment文本字段。如果它包含非空字符串,則會(huì)呈現(xiàn)感謝信息。否則,應(yīng)用程序通知用戶(hù)尚未留下注釋消息,如圖8-4所示。

圖8-4注釋文本字段留空

當(dāng)用戶(hù)單擊“清除”按鈕時(shí),將在所有三個(gè)文本字段中刪除內(nèi)容。

查看一些可用于文本字段的有用方法。

  • copy()- 將文本中當(dāng)前選定的范圍傳輸?shù)郊糍N板,保留當(dāng)前選擇。

  • cut()- 將文本中當(dāng)前選定的范圍傳輸?shù)郊糍N板,刪除當(dāng)前選擇。

  • paste()- 將剪貼板中的內(nèi)容傳輸?shù)酱宋谋局?#xff0c;替換當(dāng)前選擇。

?

相關(guān)的API文檔 ?

  • TextField

  • TextInputControl

總結(jié)

以上是生活随笔為你收集整理的JavaFX UI控件教程(九)之Text Field的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。