如何解决JList-选择多个项目
| 当我想在JList
中自动选择多个值时,在JList
中遇到这种this0ѭ方法的问题,但它仍然只选择了一个。有办法吗?
String[] items = { \"Item 1\",\"Item 2\",\"Item 3\",\"Item 4\" };
final JList theList = new JList(items);
theList.setSelectedValue(\"Item 1\",true);
theList.setSelectedValue(\"Item 2\",true);
此代码仅显示Item 2
。
解决方法
呼叫
JList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION)
后使用JList.setSelectedIndices(int[])
。
例如。
import javax.swing.*;
import java.io.*;
import java.util.ArrayList;
class MultiSelectList {
public static void main(String[] args) throws Exception {
File f = new File(\"MultiSelectList.java\");
InputStream is = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
final ArrayList<String> lines = new ArrayList<String>();
String line = br.readLine();
while (line!=null) {
lines.add(line);
line = br.readLine();
}
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JList list = new JList(lines.toArray());
list.setSelectionMode(
ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
int[] select = {19,20,22};
list.setSelectedIndices(select);
JOptionPane.showMessageDialog(null,new JScrollPane(list));
}
});
}
}
屏幕截图
, list.getSelectionModel().setSelectionInterval(...);
或者如果选择不是连续的,那么您需要使用多个
list.getSelectionModel().addSelectionInterval(...);
, 当您使用NetBeans GUI编辑器时,可以自定义为ѭ1生成的Post-Creation Code
,如下所示。
, import javax.swing.*;
import java.io.*;
import java.util.ArrayList;
class MultiSelectList {
public static void main(String[] args) throws Exception {
File f = new File(\"MultiSelectList.java\");
InputStream is = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
final ArrayList<String> lines = new ArrayList<String>();
String line = br.readLine();
while (line!=null) {
lines.add(line);
line = br.readLine();
}
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JList list = new JList(lines.toArray());
list.setSelectionMode(
ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
int[] select = {19,new JScrollPane(list));
}
});
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。