ArrayList 到 JList 并显示特定 属性 个对象
ArrayList to JList and display specific property of the objects
我想知道当 ArrayList
.[=14= 构建 JList
的项目时,是否有办法显示特定的 属性 ]
我只想选择 属性 执行此操作时将显示在列表中:
JList<String> elementsList = new JList(elementsArrayList.toArray());
elementsScrollPane.setViewportView(elementsList);
感谢您给我的任何帮助或参考!
1.
最简单的方法是
首先扫描您的输入元素列表以找到您想要显示的 属性
String[] properties = elementsArrayList.stream().map(element::getStringProperty).toArray()
然后将其用作挥杆控制的输入模型
新 JList(属性)
- 规范的、类似 Swing 的是
根据您拥有的原始对象定义 JList(通过 ListModer 或按原样,通过数组)
new JList(elementsArrayList)
然后创建您的 ListCellRenderer class,它将显示感兴趣的 属性 作为标签并将此渲染器设置到列表
jList.setCellRenderer(youCellRedererInstance)
你可以设置一个ListCellRenderer
.
本质上,你写一个函数
public Component getListCellRendererComponent(JList<?> list,
Object value, int index, boolean isSelected, boolean cellHasFocus)
其中 returns 个 Component
。为了使事情更简单,您可以扩展 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
。
我想知道当 ArrayList
.[=14= 构建 JList
的项目时,是否有办法显示特定的 属性 ]
我只想选择 属性 执行此操作时将显示在列表中:
JList<String> elementsList = new JList(elementsArrayList.toArray());
elementsScrollPane.setViewportView(elementsList);
感谢您给我的任何帮助或参考!
1.
最简单的方法是
首先扫描您的输入元素列表以找到您想要显示的 属性
String[] properties = elementsArrayList.stream().map(element::getStringProperty).toArray()
然后将其用作挥杆控制的输入模型 新 JList(属性)
- 规范的、类似 Swing 的是
根据您拥有的原始对象定义 JList(通过 ListModer 或按原样,通过数组)
new JList(elementsArrayList)
然后创建您的 ListCellRenderer class,它将显示感兴趣的 属性 作为标签并将此渲染器设置到列表
jList.setCellRenderer(youCellRedererInstance)
你可以设置一个ListCellRenderer
.
本质上,你写一个函数
public Component getListCellRendererComponent(JList<?> list,
Object value, int index, boolean isSelected, boolean cellHasFocus)
其中 returns 个 Component
。为了使事情更简单,您可以扩展 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
。