java - ArrayList转JList并显示对象的特定属性

标签 java swing jlist

我想知道是否有一种方法可以在从 ArrayList 构建 JList 时显示其项目的特定属性。

我只想选择执行此操作时将在列表中显示的属性:

JList<String> elementsList = new JList(elementsArrayList.toArray());
elementsScrollPane.setViewportView(elementsList);

感谢您给我的任何帮助或引用!

最佳答案

您可以设置ListCellRenderer .

本质上,你编写了一个函数

public Component getListCellRendererComponent(JList<?> list,
    Object value, int index, boolean isSelected, boolean cellHasFocus)

它返回一个组件。为了让事情变得更容易,您可以扩展 DefaultListCellRenderer并在从列表元素中提取要显示的值后调用它的实现,即

{
    if (value instanceof YourClass) {
        YourClass ob = (YourClass) value;
        return super.getListCellRendererComponent(list, ob.getProperty(), index, isSelected, cellHasFocus);
    }
    return super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
}

那么你set your renderer到您的 elementList

关于java - ArrayList转JList并显示对象的特定属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58300060/

相关文章:

java - 连接 JSTL

java - Spring 3.0 EL 如何从属性文件中获取属性?

java - Jlist计算

java - 递归算法的大O复杂度

java - 当我启动服务器时,Mongo 没有更新不在数据库中的文档

Java Swing 分层 Pane 未显示其自身或其内容

java - 使用值删除 Swing 中的复选框

java - 如何从 JList 打印出字符串值

java - 将 Swing 中的 JTextArea 存储在 Access 2007 数据库中

java - JInternalFrame 不显示