⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mailtree.java~60~

📁 Mail Of Java
💻 JAVA~60~
字号:
package mailofjava;import javax.swing.*;import java.awt.*;import java.util.*;import javax.swing.JTree;import javax.swing.tree.*;import javax.mail.*;import javax.activation.*;import java.util.EventObject.*;import javax.swing.event.*;/** 用于演示邮件文件夹的树形显示*/public class MailTree extends JFrame{ private int mailCount=0; MessageWrapper[] mw; private  JLabel jl = new JLabel("初始化状态"); private  JEditorPane je = new JEditorPane();  public MailTree() {   Container ct;   ct=this.getContentPane() ;   ct.setLayout(new BorderLayout()) ;//布局   CreateMessage cm=new CreateMessage(0);//readonly mode   Message[] mymessages = cm.getMessage() ;//取得数据   mailCount=mymessages.length ;//多少邮件   mw = new MessageWrapper[mailCount];//开一个邮件数组类   for(int i=0;i<mailCount;i++)      mw[i]= new MessageWrapper(mymessages[i]);//全部装入封装类    run();  }  public void run(){    DefaultMutableTreeNode top =   new DefaultMutableTreeNode("曾海的邮件根目录");     createNodes(top);     final JTree tree = new JTree(top);     tree.getSelectionModel().setSelectionMode        (TreeSelectionModel.SINGLE_TREE_SELECTION);//一次选一个哦//Listen for when the selection changes.tree.addTreeSelectionListener(new TreeSelectionListener() {    public void valueChanged(TreeSelectionEvent e) {        DefaultMutableTreeNode node = (DefaultMutableTreeNode)                           tree.getLastSelectedPathComponent();//取得当前选择        if (node == null) return;//没有选中什么破东西。        Object nodeInfo = node.getUserObject();//取结点        if(nodeInfo instanceof String) {              jl.setText((String) nodeInfo );              je.setText((String) nodeInfo );        }        if( (node.isLeaf())&&  (nodeInfo instanceof MessageWrapper )){            MessageWrapper book = (MessageWrapper )nodeInfo;            je.setText(book.toString() );            jl.setText(book.getAttachMent() );        } else {            je.setText("当前不是叶结点" );        }    }});     JScrollPane treeView = new JScrollPane(tree);     this.getContentPane().add(treeView,BorderLayout.CENTER );//顶部的东西     JPanel jp1 =new JPanel();     jp1.setLayout(new FlowLayout());     JButton jb=new JButton("附件列表");     jp1.add(jb);     this.getContentPane().add(jp1,BorderLayout.EAST );     je.setText("文字在这里");     JScrollPane jsp = new JScrollPane(je);     this.getContentPane().add(jsp,BorderLayout.SOUTH );  }//runprivate void createNodes(DefaultMutableTreeNode top) {//top是根,然后。。。      DefaultMutableTreeNode category = null;//分支结占      DefaultMutableTreeNode book = null;//叶结点      category = new DefaultMutableTreeNode( "收件箱");     for(int k=0;k<mailCount;k++){       book = new DefaultMutableTreeNode(mw[k]);       category.add(book);     }     top.add(category);//第一层结束      category = new DefaultMutableTreeNode("垃圾箱");      top.add(category);      book = new DefaultMutableTreeNode(new BookInfo ("你好!中国出口","ff.html"));      category.add(book);      book = new DefaultMutableTreeNode(new BookInfo          ("天知道,垃圾邮件",           "jls.html"));      category.add(book);  }  public static void main(String[] args) {    MailTree mailTree1 = new MailTree();    mailTree1.setTitle("这是邮件树演示");    mailTree1.setSize(new Dimension(800,600));    mailTree1.setVisible(true) ;    mailTree1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );    mailTree1.show() ;  }}class BookInfo{  private String bookname;  private String file1;  public BookInfo(String name,String filename){    bookname=name;    file1=filename;  }  public String toString(){    return "书名:"+bookname;  }}//classclass MessageWrapper{  private Message msga;  Stack attachmentList= new Stack();//存放附件名  Stack attachmentTypeList = new Stack();//附件类型  public MessageWrapper(Message aa){    msga=aa;  }//constructor  public String toString(){   try{     Address addr[] = msga.getFrom();     String myaddr= addr[0].toString() ;    return "来自"+myaddr+"主题"+msga.getSubject() ;   }catch(Exception e){ System.err.println("取邮件头失败"); e.printStackTrace();return("失败"); };  }  public String getMailContent(){  try{    if( msga.isMimeType("text/plain") )//纯文本直接返回字串       return (String) msga.getContent();    if( msga.isMimeType("multipart/*") )    {         Multipart mp= (Multipart) msga.getContent() ;         int mpCount=mp.getCount() ;         for(int h=0;h<mpCount;h++){             Part pt = mp.getBodyPart(h) ;             this.attachmentList.push(pt.getFileName() );             this.attachmentTypeList.push(pt.getContentType() );         }//for         return "多部份邮件,请看附件表";    }//if multipart    else      return "类型不定";  }catch(Exception e){ e.printStackTrace(); return "取邮件意外" ;};  }//get mail content  public String getAttachMent(){   String body="";    while(! this.attachmentList.isEmpty() ) {       body+= (String)  this.attachmentList.pop();       body+="=="+(String) this.attachmentTypeList.pop();    }//不空   return body;  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -