JAVAFX中 如何设置下拉框的默认值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVAFX中 如何设置下拉框的默认值相关的知识,希望对你有一定的参考价值。

使用SingleSelectionModel:

import javafx.scene.*;
import javafx.scene.control.*;
import javafx.stage.Stage;
import javafx.application.Application;

import javafx.collections.*;

public class FXComboExample extends Application 
    public static void main(String[] args) 
        launch(args);
    

    @Override public void start(Stage stage)
        stage.setTitle("FX ComboBox Example");
        Scene scene = new Scene(new Group(), 400, 300);
        ObservableList<String> options = FXCollections.observableArrayList("Option 1","Option 2","Option 3");
        ComboBox<String> combo = new ComboBox<>(options);
        combo.getSelectionModel().select(0); // [0, options.size())
        Group root = (Group)scene.getRoot();
        root.getChildren().add(combo);
        stage.setScene(scene);
        stage.show();
    

参考技术A javaFX 的ComboBox 不是有setValue方法么?

如何使用 javafx 根据来自另一个组合框的单击值设置组合框的值

【中文标题】如何使用 javafx 根据来自另一个组合框的单击值设置组合框的值【英文标题】:How to set a values for combobox based on a clicked value from another combobox using javafx 【发布时间】:2018-06-25 20:35:27 【问题描述】:

我是 javafx 的新手,想根据第一个组合框的实时选定值为另一个组合框设置一个新值。 我已经尝试过此代码但无法正常工作

@FXML
public void A(ActionEvent event) 
String a[] = "A","B","C"; 
list2 = FXCollections.observableArrayList(a);
ChunitS.setItems(list2);
if (ChunitS.getValue() == (null)) 
return;
 else 
list1 = FXCollections.observableArrayList(ChunitS.getValue().toString());
ChassS.setItems(list1);


如果我在第一个组合框中选择了“A”,则应更新第二个组合框以在其中包含值“A”。

【问题讨论】:

只需使用第一个组合框的valueProperty() 注册一个侦听器,然后在第二个组合框上调用setItems()。目前还不清楚你被困在哪一部分。另外:请不要发布代码链接和do not post images of code。将代码直接包含在您的问题中,properly formatted。 对不起,我已经更新了问题,现在应该更清楚了。 【参考方案1】:

您可以在第一个 ComboBox 中添加监听器:

@FXML private ComboBox<String> combo1,combo2;

@Override
public void initialize(URL location, ResourceBundle resources) 
   //Init ComboBox items
   combo1.setItems(
       FXCollections.observableArrayList(new String[]"A","B")
   );
   combo2.setItems(FXCollections.observableArrayList());
   //add ActionListener for Example
   combo1.setOnAction(e->
       combo2.getItems().add(
              combo1.getSelectionModel().getSelectedItem()
        );
    );

,或使用按钮(@FXML 'onAction' 参考):

@FXML
public void handleButtonA(ActionEvent event) 
        combo2.getItems().add(
              combo1.getSelectionModel().getSelectedItem()
        );
    

【讨论】:

【参考方案2】:

尝试在 on action first 组合框函数中使用String output = ChunitS.getSelectionModel().getSelectedItem().toString(); 以获得被选中。然后在第二个组合框中设置选定的值。希望对你有帮助

【讨论】:

以上是关于JAVAFX中 如何设置下拉框的默认值的主要内容,如果未能解决你的问题,请参考以下文章

js 设定下拉框的值默认被选中,下拉框做条件查询时,实现分页的时候带参数传值,下拉框默认被选中,求解!

如何获取select下拉框的值

js配置下拉框默认值无效

如何使用Ajax实现,下拉框的效果?

html下拉框怎么设置默认值

在javascript中如何选中web里面的下拉框的值?