有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

jlist中的java向量数据?

我正在尝试在jlist中以矢量显示数据。下面的方法connect()执行得很好,调用时没有任何错误,但向量数据不显示在jlist中。我的代码是:

public void connect(String user, String pass)
{
    vdate = new Vector(); 
    vsubject = new Vector();
    vfrom = new Vector();
    vmessage = new Vector(); 

    final String password = pass;
    final String username = user;

    try
    {

        props = new Properties();
        props.setProperty("mail.host", "imap.gmail.com");
        props.setProperty("mail.port", "995");
        props.setProperty("mail.transport.protocol", "imaps");

        session = Session.getInstance(props,
                new javax.mail.Authenticator() {
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(username,password);
                    }
                });

        store = session.getStore("imaps");
        store.connect();
        Folder inbox = store.getFolder("INBOX");
        inbox.open(Folder.READ_ONLY);

        Message messages[] = inbox.search(new FlagTerm(new Flags(Flags.Flag.SEEN), false));

        for (int i = 0; i < messages.length; i++) 
        {  
            Message message = messages[i];
            Address[] from = message.getFrom();
            frm = from[0].toString();
            vfrom.addElement(frm);
            date = message.getSentDate().toString();
            vdate.addElement(date);
            Multipart mp = (Multipart)message.getContent();
            BodyPart bp = mp.getBodyPart(0);
            mess = ""+bp.getContent();
            subject = message.getSubject().toString();
            vsubject.addElement(subject);
        }

        jList1.setListData(vdate);
        jList2.setListData(vsubject);
        jList3.setListData(vfrom);
    } catch (Exception mex) {
        mex.printStackTrace();
    }
}

for循环执行得很好。数据也存储在vector中,但当我将其设置为jlist时,没有显示任何内容。。。。。。。。plz帮助


共 (1) 个答案

  1. # 1 楼答案

    jList1.setListData(vdate);
    jList1.setListData(vsubject);
    jList1.setListData(vfrom);
    

    每次调用setListData(...)方法时,JList中的数据都会被替换。因此,最好的情况是,您将获得vFrom向量中的数据

    只需对所有数据使用一个向量