JavaFX 中設定 ChoiceBox 動作監聽器(行為)的示例


選擇框包含少量多個選項,並且只允許選擇其中一個。它將具有兩種狀態:顯示不顯示。顯示時,您可以在選擇框中看到選項列表;不顯示時,它將顯示當前的選擇。預設情況下,選擇框中未選擇任何選項。

在 JavaFX 中,選擇框由類 javafx.scene.control.ChoiceBox<T> 表示。您可以透過例項化此類來建立選擇框。

此類的 selectionModel 屬性儲存當前選擇框的選擇模型,您可以使用 getSelectionModel() 方法獲取其值(始終為 SingleSelectionModel)。

SelectionModel 類有兩個屬性,分別是 selectedIndexselectedItem,分別指定選定的索引和選定的專案。要執行在選擇專案時執行的操作,您可以透過使用 addListener() 方法向這兩個屬性中的任何一個新增操作監聽器來實現,如下所示:

getSelectionModel().selectedIndexProperty().addListener()
or,
getSelectionModel().selectedItemProperty().addListener()

示例

import javafx.application.Application;
import javafx.beans.value.ObservableValue;
import javafx.collections.ObservableList;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.Label;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.scene.text.FontPosture;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class ChoiceBoxAction extends Application {
   public void start(Stage stage) {
      //Creating a choice box
      ChoiceBox<String> choiceBox = new ChoiceBox<String>();
      //Retrieving the observable list
      ObservableList<String> list = choiceBox.getItems();
      //Adding items to the list
      list.add("English");
      list.add("Hindi");
      list.add("Telugu");
      //Setting the position of the choice box
      choiceBox.setTranslateX(200);
      choiceBox.setTranslateY(15);
      //Setting the label
      Label label = new Label("Select Display Language:");
      Font font = Font.font("verdana", FontWeight.BOLD, FontPosture.REGULAR, 12);
      label.setFont(font);
      label.setTranslateX(20);
      label.setTranslateY(20);
      //Setting the text for message
      Text text = new Text(25.0, 130.0, "");
      text.setFont(Font.font("Britannic Bold", 33));
      text.setFill(Color.BROWN);
      String language[] = new String[]{
         "Welcome to Tutorilaspoint",
         "टुटोरियल्स पॉइन्ट को आप का स्वागत है",
         "ట్యూ టోరియల్స్ పాయింట్ కి స్వా గతిం"
      };
      //Adding action to the choice box
      choiceBox.getSelectionModel().selectedIndexProperty().addListener(
         (ObservableValue<? extends Number> ov, Number old_val, Number new_val) -> {
            text.setText(language[new_val.intValue()]);
      });
      //Adding the choice box to the group
      Group root = new Group(choiceBox, label, text);
      //Setting the stage
      Scene scene = new Scene(root, 595, 170, Color.BEIGE);
      stage.setTitle("Choice Box Example");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}

輸出

選擇英語時 -

選擇印地語時 -

選擇泰盧固語時 -

更新於: 2020年5月18日

1K+ 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告

© . All rights reserved.