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

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

生活随笔

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

java

JavaFX UI控件教程(五)之Radio Button

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

翻譯自??Radio Button

本章討論單選按鈕控件和RadioButton類(lèi),該類(lèi)的一個(gè)專(zhuān)門(mén)實(shí)現(xiàn)ToggleButton。

可以選擇或取消選擇單選按鈕控件。通常,單選按鈕組合成一個(gè)組,其中一次只能選擇一個(gè)按鈕。此行為將它們與切換按鈕區(qū)分開(kāi)來(lái),因?yàn)榻M中的所有切換按鈕都可以處于取消選擇狀態(tài)。

圖4-1顯示了RadioButton樣本的三個(gè)屏幕截圖,其中三個(gè)單選按鈕添加到一個(gè)組中。

圖4-1 RadioButton示例

請(qǐng)閱讀以下段落,以了解有關(guān)如何在應(yīng)用程序中實(shí)現(xiàn)單選按鈕的更多信息。

?

創(chuàng)建單選按鈕

JavaFX SDK包中提供的RadioButton類(lèi)提供javafx.scene.control了兩個(gè)構(gòu)造函數(shù),您可以使用它們創(chuàng)建單選按鈕。例4-1顯示了兩個(gè)單選按鈕。沒(méi)有參數(shù)的構(gòu)造函數(shù)用于創(chuàng)建rb1。此單選按鈕的文本標(biāo)題是使用該setText方法設(shè)置的。rb2的文本標(biāo)題在相應(yīng)的構(gòu)造函數(shù)中定義。

例4-1創(chuàng)建單選按鈕

//A radio button with an empty string for its label RadioButton rb1 = new RadioButton(); //Setting a text label rb1.setText("Home"); //A radio button with the specified label RadioButton rb2 = new RadioButton("Calendar");

您可以使用該setSelected方法顯式選擇一個(gè)單選按鈕,并將其值指定為true。如果需要檢查用戶是否選擇了特定的單選按鈕,請(qǐng)應(yīng)用該isSelected方法。

由于RadioButton該類(lèi)是類(lèi)的擴(kuò)展,因此Labeled您不僅可以指定文本標(biāo)題,還可以指定圖像。使用該setGraphic方法指定圖像。示例4-2演示了如何在應(yīng)用程序中實(shí)現(xiàn)圖形單選按鈕。

示例4-2創(chuàng)建圖形單選按鈕

Image image = new Image(getClass().getResourceAsStream("ok.jpg")); RadioButton rb = new RadioButton("Agree"); rb.setGraphic(new ImageView(image));

向組添加單選按鈕

單選按鈕通常用于組中以呈現(xiàn)多個(gè)互斥選項(xiàng)。該ToggleGroup對(duì)象提供對(duì)與其關(guān)聯(lián)的所有單選按鈕的引用并對(duì)其進(jìn)行管理,以便一次只能選擇一個(gè)單選按鈕。例4-3創(chuàng)建一個(gè)切換組,創(chuàng)建三個(gè)單選按鈕,將每個(gè)單選按鈕添加到切換組,并指定應(yīng)用程序啟動(dòng)時(shí)應(yīng)選擇哪個(gè)按鈕。

示例4-3創(chuàng)建一組單選按鈕

final ToggleGroup group = new ToggleGroup();RadioButton rb1 = new RadioButton("Home"); rb1.setToggleGroup(group); rb1.setSelected(true);RadioButton rb2 = new RadioButton("Calendar"); rb2.setToggleGroup(group);RadioButton rb3 = new RadioButton("Contacts"); rb3.setToggleGroup(group);

當(dāng)使用布局容器布置這些單選按鈕并將其添加到應(yīng)用程序的內(nèi)容時(shí),輸出應(yīng)類(lèi)似于圖4-2。

圖4-2組合中的三個(gè)單選按鈕

?

處理單選按鈕的事件

通常,應(yīng)用程序在選擇組中的某個(gè)單選按鈕時(shí)執(zhí)行操作。查看示例4-4中的代碼片段,了解如何根據(jù)選擇的單選按鈕更改圖標(biāo)。

示例4-4單選按鈕的處理操作

ImageView image = new ImageView();rb1.setUserData("Home") rb2.setUserData("Calendar"); rb3.setUserData("Contacts");final ToggleGroup group = new ToggleGroup(); group.selectedToggleProperty().addListener(new ChangeListener<Toggle>(){public void changed(ObservableValue<? extends Toggle> ov,Toggle old_toggle, Toggle new_toggle) {if (group.getSelectedToggle() != null) {final Image image = new Image(getClass().getResourceAsStream(group.getSelectedToggle().getUserData().toString() + ".jpg"));icon.setImage(image);} } });

為每個(gè)單選按鈕分配了用戶數(shù)據(jù)。該ChangeListener<Toggle>對(duì)象檢查組中的選定切換。它使用該getSelectedToggle方法來(lái)識(shí)別當(dāng)前選擇的單選按鈕,并通過(guò)調(diào)用該getUserData方法來(lái)提取其用戶數(shù)據(jù)。然后應(yīng)用用戶數(shù)據(jù)來(lái)構(gòu)造要加載的圖像文件名。

例如,當(dāng)選擇rb3時(shí),該getSelectedToggle方法返回“rb3”,該getUserData方法返回“Contacts”。因此,該getResourceAsStream方法接收值“Contacts.jpg”。應(yīng)用程序輸出如圖4-1所示。

?

請(qǐng)求聚焦單選按鈕

在單選按鈕組中,默認(rèn)情況下第一個(gè)按鈕最初具有焦點(diǎn)。如果將該setSelected方法應(yīng)用于組中的第二個(gè)單選按鈕,則應(yīng)該會(huì)得到如圖4-3所示的結(jié)果。

圖4-3默認(rèn)焦點(diǎn)設(shè)置

選擇第二個(gè)單選按鈕,第一個(gè)按鈕保持對(duì)焦。使用該requestFocus功能更改焦點(diǎn),如例4-5所示。

例4-5請(qǐng)求第二個(gè)單選按鈕的焦點(diǎn)

rb2.setSelected(true); rb2.requestFocus();

應(yīng)用時(shí),此代碼生成如圖4-4所示的結(jié)果。

圖4-4設(shè)置所選單選按鈕的焦點(diǎn)

?

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

  • RadioButton

  • Labeled

  • ToggleGroup

總結(jié)

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

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