当前位置: 首页 > 知识库问答 >
问题:

仅显示列表中的标签

翟默
2023-03-14

我有这个对象显示在一个组合框中:

private List<ListGroupsObj> listGroups;

    public static class ListGroupsObj
    {

        private int groupId;
        private String groupName;


        public static ListGroupsObj newInstance()
        {
            return new ListGroupsObj();
        }

        public ListGroupsObj()
        {
        }

        public ListGroupsObj groupId(int groupId)
        {
            this.groupId = groupId;
            return this;
        }

        public ListGroupsObj groupName(String groupName)
        {
            this.groupName = groupName;
            return this;
        }

        public int getGroupId()
        {
            return groupId;
        }

        public String getGroupName()
        {
            return groupName;
        }

    }

ListGroupsObj ob = ListGroupsObj.newInstance().groupId(12).groupName("Test");

我想把这个列表显示到一个组合框中。

private final ObservableList<ListGroupsObj> listGroups
        = FXCollections.observableArrayList(
        .........    
        );

final ComboBox<ListGroupsObj> cCountry1 = new ComboBox<>();

        cCountry1.setItems(CountrycomboList);

        cCountry1.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<ListGroupsObj>()
        {

            @Override
            public void changed(ObservableValue<? extends ListGroupsObj> arg0, ListGroupsObj arg1, ListGroupsObj arg2)
            {
                if (arg2 != null)
                {
                    System.out.println("Selected Group: " + arg2.name);
                }
            }
        });

        cCountry1.getSelectionModel().select(0);

问题是如何将组的名称从对象显示到组合框中?

共有1个答案

令狐俊风
2023-03-14

使用自定义列表单元格,您需要将它提供给ComboBox的单元格工厂和setButtonCell方法:

public static class ListGroupListCell extends ListCell<ListGroupsObj> {
    @Override
    public void updateItem(ListGroupsObj item, boolean empty) {
        super.updateItem(item, empty);
        if (empty) {
            setText(null);
        } else {
            setText(item.getGroupName());
        }
    }
});

// ...

cCountry1.setCellFactory(new Callback<ListView<ListGroupsObj>, ListCell<ListGroupsObj>>() {
    @Override
    public ListCell<ListGroupsObj> call (ListView<ListGroupsObj> list) {
        return new ListGroupListCell();
    }
});
cCountry1.setButtonCell(new ListGroupListCell());
 类似资料:
  • 我试图显示存储在mongodb数据库中的lat和lng的标记列表。我正在使用google-maps-react,这是我的子地图组件 我从这里的endpoint得到坐标 仍未显示

  • 问题内容: 我一直在寻找一个很好的技巧,使隐藏/显示内容或仅具有CSS而没有javascript的列表。我已成功执行此操作: 并且它正在工作,但没有达到应有的效果。这是问题所在:显示内容时,您可以通过单击“页面上的任何位置”将其隐藏。如何禁用它?如何通过单击“隐藏”隐藏内容“仅”?先感谢您! 问题答案: 我不会使用复选框,而是使用您已经拥有的代码 CSS HTML 这样,仅在单击hide元素时隐藏

  • 本文向大家介绍从MySQL表的列中选择并仅显示一些行,包括了从MySQL表的列中选择并仅显示一些行的使用技巧和注意事项,需要的朋友参考一下 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 这是用于选择和仅显示一些行的查询- 这将产生以下输出-

  • 我的图表在同一页上工作良好,但当我把不同的页面,只有第一个工作良好。 例如:page1.html page2.html JS 在这个代码中,因为它是同一个页面,所以Pen工作得很好。码本

  • 我试图理解在我试图识别列表中哪些元素是可见的过程中发生了什么。 应用程序使用变量菜单下拉列表,其中存在标准选项列表,但在应用程序的每一行上可见的选项因某些参数而异。 因此,对于上面的示例,HTML 看起来像... 如您所见,显示的两个项目具有一种显示样式,其他项目为“无”。 我的想法是抓取所有列表项,然后循环浏览它们以确定显示哪些选项。 但是,使用此方法时,仅显示两个选项中的第一个选项。 但是,如

  • 问题内容: 我在MySQL数据库中有以下数据: 我现在正在使用PHP工作,但是在使用C#,Java和其他语言时,却多次遇到此问题。 现在,我过去和现在的目标是以以下格式显示数据: 在创建一个代表我的SQL表的类之前,我已经解决了这个问题。然后我创建了一个hold和class。 我正在跳过步骤,但我希望您能理解我的意思。我可能只需要用什么关键字来称呼这种类型的问题。完成此操作的首选方式是什么? 问题