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中 如何设置下拉框的默认值的主要内容,如果未能解决你的问题,请参考以下文章