我想选择其中包含关键字 facebook 和 twitter 的项目。但问题是第一个项目“聚合器”总是被选中。谁能告诉我代码中有什么问题。谢谢。
int j=0;
jList1.setModel(listmodel);
for (int i=0;i<listmodel.size();i++){
if (listmodel.getElementAt(i).toString().indexOf("facebook")!=-1||listmodel.getElementAt(i).toString().indexOf("twitter")!=-1){
a[j]=i;
j++;
}
}
jList1.setSelectedIndices(a);
最佳答案
要选择多个元素,您可以使用诸如 JList#addSelectionInterval
之类的东西,例如...
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class ListSelectionExample {
public static void main(String[] args) {
new ListSelectionExample();
}
public ListSelectionExample() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
}
DefaultListModel model = new DefaultListModel();
model.addElement("Bananas on facebook");
model.addElement("Bananas in pajamas");
model.addElement("Teddies in space");
model.addElement("Teddies on twitter");
model.addElement("Rat on the moon");
model.addElement("Cow over the moon");
model.addElement("Facebook pandas");
JList list = new JList(model);
for (int index = 0; index < model.getSize(); index++) {
String text = model.getElementAt(index).toString().toLowerCase();
if (text.contains("facebook") || text.contains("twitter")) {
list.addSelectionInterval(index, index);
}
}
JFrame frame = new JFrame("Testing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new BorderLayout());
frame.add(new JScrollPane(list));
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
关于java - 在列表框中选择第一个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24423617/