簡體   English   中英

從JList中獲取多個選定項

[英]Get multiple selected items from a JList

我正在創建一個包含四個列表的屏幕。 基本上是兩對列表,您可以在其中選擇一對列表中的行,並將它們移動到對中的另一個列表中。

查看文檔,我需要為每個列表使用ListSelectionModel來確定選擇了哪些行。 我將使用[Sel]或[Des]按鈕進行實際傳輸。

樣本屏幕

文檔和示例說我需要一個ListSelectionListener但是因為在用戶點擊按鈕之前我不會訪問模型我真的需要一個監聽器嗎? 如果我沒有監聽器,模型是否仍會設置getMinSelectionIndex,getMaxSelectionIndex和isSelectedIndex?

你不需要一個監聽器,一個監聽器只對你不需要的東西保持同步有用。

您可以在選擇事件發生后的任何時刻訪問所選索引。 方法JList.getSelectedIndices返回當前所選索引的數組,getSelectedValuesList()根據您的需要返回實際項目....

JList<String> items = new JList<String>(new String[] { "foo", "bar", "baz" });
// simulate selection
items.setSelectedIndices(new int[] { 0, 2 });

一段時間之后....

// get actual values
System.out.println(items.getSelectedValuesList());
// get indexes
System.out.println(Arrays.asList(items.getSelectedIndices()));

但由於在用戶點擊按鈕之前我不會訪問該模型,我是否真的需要一個監聽器?

不需要。只需要監聽器就可以通知選擇或取消列表的項目,並且由於您正在等待來自JButton的通知,因此它的ActionListener就是您所需要的。

如果我沒有監聽器,模型是否仍會設置getMinSelectionIndex,getMaxSelectionIndex和isSelectedIndex?

這與聽眾無關。 如果您提出要求,該模型仍應提供此信息。

但為什么要問這些問題? 通過簡單的測試很容易發現這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM