java - 在列表框中选择第一个项目

标签 java swing listbox applet jlist

我想选择其中包含关键字 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 之类的东西,例如...

List

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/

相关文章:

java - 使用MATLAB的Android微妙内存泄漏分析

java - 检测 Java 异常的责任变量

java - JComponent 的paint(Graphics g) 方法是否被validate()、revalidate() 或paint() 调用?

java - 从 JFrame 中删除 JPanel,太慢了

c# - 数据绑定(bind)文本框不反射(reflect)源更改

c# - 如何在 C# WPF 中选中/取消选中列表框中的所有复选框?

java - 如何在java中使用正则表达式获取子字符串?

Java 列表电话簿

java - java JFrame 中的 HTML?

c# - 我想在 winforms 列表框控件中检测一个项目双击。 【如何处理点击空白区域?】