gpt4 book ai didi

java - 确定当前正在使用哪个数组列表?

转载 作者:行者123 更新时间:2023-12-02 12:20:10 25 4
gpt4 key购买 nike

我有一个由数组列表填充的 ListView ,以及一个组合框,当选择项目时,清除 ListView 并用不同的数组列表填充它。这工作正常,但问题是,我已经将其设置为当在 ListView 中选择一个项目时,它会根据数组列表中项目的索引显示该项目的信息。切换ArrayList时,显示的信息显然仍然使用原ArrayList的索引。有什么方法可以检查正在使用哪个列表来阻止此操作?

ListView 上的监听器:

String item = lv_left.getSelectionModel().getSelectedItem();    //if clicked once, sets selected to appear
lv_left.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>(){
public void changed(ObservableValue<? extends String> ov, String old_val, String new_val){
tooltip.setText(new_val);
int index = lv_left.getSelectionModel().getSelectedIndex();
//Here would be my switch statement for the array index

我最初是这样填充 ListView 的:

ListView<String> lv_left = new ListView<>
(FXCollections.observableArrayList(cleric_cantrips));

这是我切换 ListView 时的情况:

levels.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>(){
public void changed(ObservableValue<? extends String> ov, String old_val, String new_val){
String value = levels.getValue();

switch (value){
case "Caster Level": lv_left.getItems().clear(); lv_left.getItems().addAll(cleric_cantrips);
break;
case "Level 1": lv_left.getItems().clear(); lv_left.getItems().addAll(cleric_lvl_1);
break;
//etc.

这可行吗?由于我正在使用 lv_left.getItems().addAll(cleric_lvl_1); 更改列表中的项目,有没有办法可以制作 if 语句或其他内容我在哪里找到了索引的 switch 语句,这样如果它是 cleric_cantrips ,那么就使用该数组列表作为索引?或者我是否必须手动执行此操作并使用基于项目字符串的开关?两者都可以,但我觉得使用索引会更干净、更短,而不是必须在开关中键入每个项目。

最佳答案

你可以这样做:

  • if(lv_left.getItems().containsAll(cleric_cantrips)))
  • if(levels.getValue().equals("施法者等级"))
  • 或者您可以添加自己的 boolean 变量来跟踪正在使用的列表。

关于java - 确定当前正在使用哪个数组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45848636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com