Java 如何告知JList大提琴演奏者JList的突然变化?

Java 如何告知JList大提琴演奏者JList的突然变化?,java,swing,jlist,Java,Swing,Jlist,我有一个JList,它将根据用户指向选定的JList。它的作用类似于监视所选JList的监视器。当我实现自定义单元渲染器并以编程方式执行类似于this.list=getSelectedList()的操作时,单元渲染器不会对信息的突然变化做出反应。如何通知JList重新评估其列表数据而不必调用添加/删除功能?this.list=getSelectedList()会影响另一个JList对象到this.list字段。如果在执行此行之前将自定义渲染器设置为this.list,则在另一个JList对象上设

我有一个JList,它将根据用户指向选定的JList。它的作用类似于监视所选JList的监视器。当我实现自定义单元渲染器并以编程方式执行类似于
this.list=getSelectedList()
的操作时,单元渲染器不会对信息的突然变化做出反应。如何通知JList重新评估其列表数据而不必调用添加/删除功能?

this.list=getSelectedList()
会影响另一个JList对象到
this.list
字段。如果在执行此行之前将自定义渲染器设置为
this.list
,则在另一个JList对象上设置渲染器,并且渲染器无法神奇地附加到新的选定列表

你混淆了变量和对象。在对象上调用方法时,修改的是变量指向的对象,而不是变量本身。如果要将相同的单元渲染器附加到新选择的JList,则需要以下代码:

ListCellRenderer renderer = this.list.getCellRenderer();
this.list = getSelectedList();
this.list.setCellRenderer(renderer);

this.list=getSelectedList()
会影响
this.list
字段的另一个JList对象。如果在执行此行之前将自定义渲染器设置为
this.list
,则在另一个JList对象上设置渲染器,并且渲染器无法神奇地附加到新的选定列表

你混淆了变量和对象。在对象上调用方法时,修改的是变量指向的对象,而不是变量本身。如果要将相同的单元渲染器附加到新选择的JList,则需要以下代码:

ListCellRenderer renderer = this.list.getCellRenderer();
this.list = getSelectedList();
this.list.setCellRenderer(renderer);

从我收集的问题下面的评论来看,你有一个列表A,它应该显示另一个列表的内容。列表应该显示用户选择的列表的内容,当用户更改“选定列表”时,您会遇到问题

您可以在
JList
实例后面共享
ListModel
。所以你可以吃点类似的东西

public void selectionChanged( JList selectedList ){
  //update the model of this.list to match the model of selectedList
  this.list.setModel( selectedList.getModel() );
}

从我收集的问题下面的评论来看,你有一个列表A,它应该显示另一个列表的内容。列表应该显示用户选择的列表的内容,当用户更改“选定列表”时,您会遇到问题

您可以在
JList
实例后面共享
ListModel
。所以你可以吃点类似的东西

public void selectionChanged( JList selectedList ){
  //update the model of this.list to match the model of selectedList
  this.list.setModel( selectedList.getModel() );
}

您的意思是说您有一个
JList
a
,它可以可视化与另一个选定的
JList
相同的数据,用户可以更改“选定列表”,此时列表
a
应显示新的“选定列表”中包含的数据?是的,它假设显示选定的列表数据,但不了解渲染器在何处/如何发挥作用?假设@Robin描述了您的需求(一个jlist,其中显示了多个jlist池中“选定”列表的数据)。你如何检测“选中的”?@user385261(+1)我认为答案触及了其他问题,用编辑你的帖子你是说你有一个
JList
a
,它可视化了与另一个选中的
JList
相同的数据,用户可以更改“选定列表”,此时列表
A
应显示新“选定列表”中包含的数据?是的,它假设显示选定列表数据。不了解渲染器在何处/如何发挥作用?假设@Robin描述了您的需求(一个jlist,其中显示了多个jlist池中“选定”列表的数据)。你是如何检测“被选中的”@user385261(+1)我认为答案触及了其他问题,请编辑你的帖子