gpt4 book ai didi

java - 向程序添加列表选择监听器时卡住了

转载 作者:行者123 更新时间:2023-12-02 03:45:59 25 4
gpt4 key购买 nike

我昨天问了类似的问题,虽然我得到了一些方向,但我现在陷入困境。我有一个程序,其中包含一个 GUI,其中有两个并排的列表。第一个列表(我将其称为左侧)包含许多从上传的文件中解析的项目。

另一个列表(我将其称为右侧列表)默认为空。用户可以使用一些按钮在两个列表之间传输项目。在运行时,右侧列表中的项目将被保留,左侧列表将被丢弃。现在我已经成功添加了一个计数器,可以动态显示每个列表的项目总数。

我昨天有一个想法,我想添加另一个动态计数器,该计数器将向用户显示左侧列表中选择了多少项目(但尚未移动)。这样做的原因是用户可能有非常大的列表(300+项目)并且需要移动一定数量(例如50)..有一个计数器来显示他们当前选择了多少项目将节省他们一点时间。

我知道要执行此操作,我需要使用一个列表选择监听器,该监听器将有一个方法来设置 JLabel 的文本。问题是我无法找出获取列表大小的方法。

这是创建我的列表的地方。

input = new DefaultListModel();

这里填充了一个项目数组,这些项目是在基于上传文件的缓冲编写器期间填充的。

String[] inputItems = new String[MainWriter.entryDetails.size()];
inputItems = MainWriter.entryDetails.toArray(inputItems);

for(int i = 0; i < inputItems.length; i++){
input.addElement(inputItems[i]);
}

创建列表:

inputDetails = new JList(output);
inputDetails.setVisibleRowCount(10);
inputDetails.setFixedCellHeight(20);
inputDetails.setFixedCellWidth(400);
inputDetails.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

//Creates a new scroll pane for the inputDetails.
JScrollPane list2 = new JScrollPane(inputDetails);

这是我创建列表选择监听器的尝试。

inputDetails.addListSelectionListener(new ListSelectionListener(){

@Override
public void valueChanged(ListSelectionEvent arg0) {

selectedCount.setText(inputDetails.);

}



});

如您所见,我不确定将文本设置为当前所选项目的最佳方法是什么。

我相信这足以说明我的问题。我想要有“选定的项目”行,然后动态地说用户在左侧列表中突出显示了多少个项目。

任何帮助将不胜感激。

编辑:

按照建议,我添加了以下内容:

inputDetails.addListSelectionListener(new ListSelectionListener(){

@Override
public void valueChanged(ListSelectionEvent arg0) {


String counter = Integer.toString(inputDetails.getSelectedIndices().length);
selectedCount.setText("Currently Selected Transactions: "+counter);

}



});

但是 JLabel 似乎没有更新,有人可以就这个问题向我提供建议吗?

最佳答案

在监听器中,selectedCount.getSelectedIndices().length 将告诉您当前选择了多少个项目。

关于java - 向程序添加列表选择监听器时卡住了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36287061/

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