2 fuliuzi3897 fuliuzi3897 于 2017.01.08 17:27 提问

求助Java语言做得电子邮件系统,收件箱有问题,内容显示不出来,求帮忙 1C

package utils;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Vector;

import javax.swing.JTable;
import javax.swing.SwingUtilities;

import mailutil.GetMail;
import frame.JProgressBarFrame;
import frame.MainFrame;

public class ReceiveMailTable extends Thread {
private Vector mails = null;// 构造一个空向量,使其内部数据数组的大小为
// 10,其标准容量增量为零。
private static Vector> mailListVector = null;// 收取邮件列表模型
private static GetMail getmail = null;
private RecycleMailTable recycleMail = null;
private static JTable deleteMailTable = null;// 删除邮件表格
private MailTableModel tableModel = null;
public static LinkedList list = new LinkedList();
private static ReceiveMailTable mail2Table = null;// 单例模式得到本类对象
private static JProgressBarFrame progressBar = new JProgressBarFrame(
MainFrame.MAINFRAME, "收件箱", "正在查收邮件,请稍后...");

private ReceiveMailTable() {
    getmail = GetMail.getMailInstantiate();
}

public static ReceiveMailTable getMail2Table() {// 单例模式得到本类对象
    if (mail2Table == null) {
        progressBar.setVisible(true);
        mail2Table = new ReceiveMailTable();
        mail2Table.start();
    }
    return mail2Table;
}

public static boolean isInitMail2Table() {// 判断本类对象是否初始化
    boolean isInit = false;
    if (mail2Table != null)
        isInit = true;
    return isInit;
}

// 设置邮件列表表格
public void setDeleteMailTable(JTable jTable) {
    deleteMailTable = jTable;
}

// 刷新邮件列表时用到
public void startReceiveMail() {
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
            progressBar.setVisible(true);
            MainFrame.addIFame(FrameFactory.getFrameFactory()
                    .getReceiveFrame());// 将收件箱界面显示在主窗口中
        }
    });
    new Thread() {// 开启新的线程刷新邮件列表
        public void run() {
            mailToTable();
        }
    }.start();
}

@Override
public void run() {
    mailToTable();
}

// 将邮件信息添加到表格中
public void mailToTable() {
    try {
        Iterator it = getmail.getMailInfo(getmail.getAllMail()).iterator();
        Map map = null;
        // 将邮件信息列表显示在表格中
        if (deleteMailTable.getRowCount() > 0) {
            deleteMailTable.removeAll();// 移除表格中的所有内容
            mailListVector.removeAllElements();// 移除模型中的所有内容
            list.clear();// 从此列表中移除所有元素
        }
        while (it.hasNext()) {
            mails = new Vector<String>();
            map = (Map) it.next();
            mails.add("<html><strong>" + map.get("sender")
                    + "</strong></html>");
            mails.add("<html><strong>" + map.get("subject")
                    + "</strong></html>");
            mails.add("<html><strong>" + map.get("senddate")
                    + "</strong></html>");
            mails.add("<html><strong>" + map.get("hasAttach")
                    + "</strong></html>");
            list.add((String) map.get("ID"));
            mailListVector.add(mails);
        }
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                deleteMailTable.validate();// 动态的更新表格
                deleteMailTable.repaint();
                progressBar.setVisible(false);
            }
        });

    } catch (Exception e) {
        e.printStackTrace();
    }
}

// 读取邮件内容
public static String readMail(LinkedList<String> linkedList, int id) {// id行号
    String message = null;
    String mailID = (String) linkedList.get(id);// 返回指定行对应的mailID号
    try {
        Map result = getmail.readMail(mailID);
        message = result.get("content").toString();// 得到邮件内容
    } catch (Exception e) {
        e.printStackTrace();
    }
    return message;
}

// 将邮件移到回收站
public void moveMail2Recycle(int id) {
    recycleMail = RecycleMailTable.getRecycleMail();// 初始化回收站
    recycleMail.getMailTableModel();// 得到回收站的表格模型
    recycleMail.addRecycleMail(mailListVector.get(id), list.get(id));// 将邮件移到回收站
}

// 删除邮件
public void deleteMail(int id) {// id 选择的行号
    mailListVector.removeElementAt(id);// 删除表格中选中邮件对应的行
    list.remove(id);
    deleteMailTable.updateUI();// 动态的更新表格
    deleteMailTable.validate();// 动态的更新表格
    deleteMailTable.repaint();
}

// 恢复邮件
public static void recoverMail(Vector<String> vector, String mailId) {
    mailListVector.add(vector);
    list.add(mailId);
    deleteMailTable.updateUI();// 动态的更新表格
    deleteMailTable.validate();// 动态的更新表格
    deleteMailTable.repaint();
}

// 彻底删除邮件
public static boolean deleteMailForever(int[] selectMail, int id, List list) {
    boolean isDelete = false;
    String[] mailID = new String[id];
    for (int i = 0; i < id; i++) {
        mailID[i] = (String) list.get(selectMail[i]);// 返回指定行对应的mailID号
    }
    isDelete = getmail.deleteMail(mailID);// 彻底删除邮件
    return isDelete;
}

public MailTableModel getMailTableModel() {// 邮件表格模型
    if (tableModel == null)
        tableModel = new MailTableModel();
    mailListVector = tableModel.getVector();
    return tableModel;
}

}

1个回答

JE_GE
JE_GE   2017.01.09 12:01

问题具体点啊,页面不显示还是不能获取邮件列表

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
求助帮忙调试下MFC源代码
求助,帮忙调试下MFC源代码。求助,帮忙调试下MFC源代码。求助,帮忙调试下MFC源代码
求助各位高手,帮忙做下,谢谢了
由计算机“想”一个四位数,请人猜出这个四位数是多少。人输入四位数字后,计算机首先判断这四位数字有几位是猜对了,并且在对的数字中又有几位位置也是对的,将结果显示出来,给人以提示,请人再猜,直到人猜出计算机所想的四位数是多少时为止。 
电子邮件系统的介绍
1、前言电子邮件系统的组成: 用户接口 用户接口是本地运行的程序,又称用户代理(UA),主要是撰写、显示、处理邮件。UA的任务是创建和显示报文,并且在UA和本地的MAT之间传递报文 邮件传输程序 这个部分又称报文传送代理(MTA),它将邮件通过网络发送给对方主机,并从网络接收邮件。它包括如下两个功能: 1. 传送和接收:电子邮件按照c/s方式工作。用户编写好邮件,通过UA将邮件交给MTA。发送邮件时
outlook 收件箱显示有新邮件(显示新邮件数目),但进入收件箱却找不到新邮件
outlook 收件箱显示有新邮件(显示新邮件数目),但进入收件箱却找不到新邮件;用筛选工具(规则是新邮件)却可以找到这些邮件,但阅读过后在收件箱又找不到了。我在outlook中设置了好几个邮箱,公司的邮箱是OK的,自己的邮箱有上述问题,附图如下,请高手帮忙,感激不尽! 问题补充: 以上是截图。 2011-6-24 20:29
激励干个人java的不足之处
1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该十分了解UML,尤其是class,object,interaction以及statediagrams。  2.你需要学习JAVA语言的基础知识以及它的核心类库(collections,serialization,streams,networking, multithreading,refle
电子邮件
主要 参考《计算机网络》第五版 简单邮件传输协议SMTP(Simple Mail Transfer Protocol)采用客户服务器方式 通用因特网邮件扩充MIME(Multipurpose Internet Mail Extension) 邮局协议第三版POP3(Post Office Protocol)采用客户服务器方式 网际报文存取协议IMAP(Internet Messag
struts2和spring3注解整合问题
求有爱的大大帮忙解决一下strut2和sprin3注解找不到action的问题
ELM——HOG
代码有问题 出现内存访问错误 求大神帮忙修改
4.5电子邮件系统基本知识重点内容总结
一、与其他通信方式相比,电子邮件的特点 1.与人工通信比迅速,范围广,比较可靠; 2.与电话系统相比,不要求双方都在场,不需要知道通信对象在网络中的具体位置; 3.可以实现一对多的邮件传送; 4.可以将文字、图像、语音等多种类型的信息集成在一个邮件中传送。 二、电子邮件系统的基本知识 1.工作模式:客户机/服务器模式。 2.TCP/IP互联网上电子邮件的传输过程 (1)邮件服务器之
Android获取收件箱列表与会话内容
直接上代码了!1.获取收件箱列表 public void openInbox() { Intent intent = new Intent(Intent.ACTION_MAIN); intent.setData(Uri.parse("content://mms-sms/")); startActivity(intent); }效果:2.获取会话内容  public static final Uri CONTENT_URI = Uri.parse("content://mms-sms/"