gpt4 book ai didi

Java/Swing - 将组件添加到 JList

转载 作者:行者123 更新时间:2023-12-01 11:15:31 25 4
gpt4 key购买 nike

我有一个 JList,需要向其中添加组件。我所做的是创建了一个 DefaultListModel,它采用我创建的组件的类型。我的代码将其添加到 DefaultListModel 中,并且它确实显示信息,但它只是字符串格式的组件名称。我应该如何让它实际显示组件而不是组件名称?这可能吗?

这是我的代码

    DefaultListModel<CustomComponent> jListModel = new DefaultListModel<>();
jListModel.addElement(new CustomComponent()); //Adds the name of the component(not what I want)

最佳答案

实现 ListCellRenderer 类在方法中

Component getListCellRendererComponent(
JList<? extends E> list,
E value,
int index,
boolean isSelected,
boolean cellHasFocus);

您所需要的只是返回。该值是列表元素,在您的情况下它是 CustomComponent 实例。这是最简单的方法。

但这不是正确的方法。列表模型应该保留数据(而不是组件)。相反,为渲染器定义一个 CustomComponent 实例,并在 getListCellRendererComponent() 中调用诸如 customComponentInstance.init(value) 之类的内容,让 CustomComponent 反射(reflect)模型中的数据。

关于Java/Swing - 将组件添加到 JList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31877658/

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