www.pudn.com > mailbox.zip > RecievePanel.java


package mailbox; 
 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.io.*; 
import javax.swing.border.*; 
import javax.swing.tree.*; 
import javax.swing.event.*; 
import javax.mail.internet.*; 
import javax.mail.*; 
import java.util.*; 
 
 
public class RecievePanel extends JPanel { 
  waitDialog wait=new waitDialog(); 
  JTree recieveTree; 
  DefaultMutableTreeNode recieveNode; 
  DefaultTreeModel recieveModel; 
  DefaultMutableTreeNode node; 
  JTree sendTree; 
  DefaultMutableTreeNode sendNode; 
  DefaultTreeModel sendModel; 
  Vector recieveVector=new Vector(); 
  Vector sendVector=new Vector(); 
  JLabel contentLabel=new JLabel(); 
  JTextArea contentArea = new JTextArea(); 
  JScrollPane areaJsp=new JScrollPane(contentArea); 
  JScrollPane treeJsp1; 
  JScrollPane treeJsp2; 
  JLabel jLabel3 = new JLabel(); 
  JTextField fromField = new JTextField(); 
  JLabel jLabel4 = new JLabel(); 
  JTextField subjectField = new JTextField(); 
  JLabel jLabel5 = new JLabel(); 
  JTextField attachField = new JTextField(); 
  Border border1; 
  JButton recieveButton = new JButton(); 
  ProcessMessage processM=new ProcessMessage(); 
  JLabel dateLabel=new JLabel(); 
  JTextField dateField = new JTextField(); 
  public RecievePanel() { 
    try { 
      jbInit(); 
    } 
    catch(Exception ex) { 
      ex.printStackTrace(); 
    } 
  } 
  void jbInit() throws Exception { 
    recieveNode=new DefaultMutableTreeNode("收件箱"); 
    recieveModel = new DefaultTreeModel(recieveNode); 
    recieveTree = new JTree(recieveModel); 
    recieveTree.setEditable(false); 
    recieveTree.getSelectionModel().setSelectionMode 
    (TreeSelectionModel.SINGLE_TREE_SELECTION); 
    recieveTree.setShowsRootHandles(true); 
    recieveTree.addTreeSelectionListener(new treeLis1()); 
   /* DefaultMutableTreeNode node1=new DefaultMutableTreeNode("messgae1"); 
    recieveModel.insertNodeInto(node1, recieveNode,recieveNode.getChildCount()); 
    recieveTree.scrollPathToVisible(new TreePath(node1.getPath())); 
    MyMessage  mymessage=new MyMessage(); 
    mymessage.setSubject("niaho"); 
    node1.setUserObject(mymessage); 
    System.out.println(((MyMessage)node1.getUserObject()).getSubject()); 
   */  
    sendNode=new DefaultMutableTreeNode("已保存邮件"); 
    sendModel = new DefaultTreeModel(sendNode); 
    sendTree = new JTree(sendModel); 
    sendTree.setEditable(false); 
    sendTree.getSelectionModel().setSelectionMode 
    (TreeSelectionModel.SINGLE_TREE_SELECTION); 
    sendTree.setShowsRootHandles(true); 
    sendTree.addTreeSelectionListener(new treeLis2()); 
    treeJsp1=new JScrollPane(recieveTree); 
    treeJsp2=new JScrollPane(sendTree); 
     
    recieveTree.setFont(new java.awt.Font("Monospaced", 0, 12)); 
    sendTree.setFont(new java.awt.Font("Monospaced", 0, 12)); 
    treeJsp1.setBounds(new Rectangle(21, 10, 147, 177)); 
    treeJsp2.setBounds(new Rectangle(21, 191, 147, 172)); 
  /*  DefaultMutableTreeNode messageNode1= new DefaultMutableTreeNode("nihao"); 
     DefaultMutableTreeNode messageNode2= new DefaultMutableTreeNode("dajiahao"); 
    recieveModel.insertNodeInto(messageNode1, recieveNode,recieveNode.getChildCount()); 
    recieveModel.insertNodeInto(messageNode2, recieveNode,recieveNode.getChildCount()); 
     recieveTree.scrollPathToVisible(new TreePath(messageNode1.getPath())); 
     recieveTree.scrollPathToVisible(new TreePath(messageNode2.getPath())); 
    */ 
    this.setLayout(null); 
    border1 = BorderFactory.createCompoundBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED,Color.white,Color.white,Color.white,Color.white),BorderFactory.createEmptyBorder(2,2,2,2)); 
    contentArea.setFont(new java.awt.Font("Monospaced", 0, 14)); 
    contentArea.setToolTipText(""); 
    contentLabel.setFont(new java.awt.Font("Monospaced", 0, 14)); 
    contentLabel.setText("内容:"); 
    contentLabel.setBounds(new Rectangle(193, 156, 66, 27)); 
    areaJsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
    areaJsp.getViewport().setBackground(Color.white); 
    areaJsp.setFont(new java.awt.Font("Monospaced", 0, 14)); 
    areaJsp.setBounds(new Rectangle(187, 189, 347, 173)); 
    jLabel3.setFont(new java.awt.Font("Monospaced", 0, 14)); 
    jLabel3.setText("地址:"); 
    jLabel3.setBounds(new Rectangle(190, 12, 51, 26)); 
     
    dateLabel.setFont(new java.awt.Font("Monospaced", 0, 14)); 
    dateLabel.setText("日期:"); 
    dateLabel.setBounds(new Rectangle(190, 84, 47, 26)); 
    dateField.setFont(new java.awt.Font("Monospaced", 0, 14)); 
    dateField.setBounds(new Rectangle(290, 79, 243, 31)); 
     
    fromField.setFont(new java.awt.Font("Monospaced", 0, 14)); 
    fromField.setBounds(new Rectangle(290, 11, 243, 31)); 
    jLabel4.setFont(new java.awt.Font("Monospaced", 0, 14)); 
    jLabel4.setText("主题:"); 
    jLabel4.setBounds(new Rectangle(191, 47, 48, 29)); 
    subjectField.setFont(new java.awt.Font("Monospaced", 0, 14)); 
    subjectField.setBounds(new Rectangle(290, 45, 243, 31)); 
    jLabel5.setFont(new java.awt.Font("Monospaced", 0, 14)); 
    jLabel5.setToolTipText(""); 
    jLabel5.setText(" 附件:"); 
    jLabel5.setBounds(new Rectangle(185, 117, 52, 33)); 
    attachField.setFont(new java.awt.Font("Monospaced", 0, 14)); 
    attachField.setBounds(new Rectangle(290, 117, 243, 31)); 
     
     
    recieveButton.setFont(new java.awt.Font("Monospaced", 0, 14)); 
    recieveButton.setBorder(border1); 
    recieveButton.setText("接收邮件"); 
    recieveButton.setBounds(new Rectangle(421, 156, 111, 28)); 
    recieveButton.addActionListener(new recieveAction()); 
    
    this.add(fromField, null); 
    this.add(subjectField, null); 
    this.add(areaJsp, null); 
    this.add(contentLabel,null); 
    this.add(treeJsp1, null); 
    this.add(treeJsp2, null); 
    this.add(jLabel5, null); 
    this.add(jLabel3, null); 
    this.add(jLabel4, null); 
    this.add(dateField,null); 
    this.add(dateLabel,null); 
    this.add(attachField, null); 
    this.add(recieveButton, null); 
  } 
class treeLis1 implements TreeSelectionListener,Serializable 
{       DefaultMutableTreeNode node; 
        int index=-1; 
        public void valueChanged(TreeSelectionEvent e)  
        { 
        node=(DefaultMutableTreeNode)recieveTree.getLastSelectedPathComponent(); 
        for(int i=0;i=0) 
        { 
        	 String fs1=""; 
             String fs2=""; 
             String fs3=""; 
             String fs4=""; 
             String fs5=""; 
            	try{ 
            	fs1= MimeUtility.decodeText(findEmailAddress(((MyMessage)(recieveVector.elementAt(index))).getAddress())); 
            	fs2= MimeUtility.decodeText(((MyMessage)(recieveVector.elementAt(index))).getSubject()); 
            	fs3= MimeUtility.decodeText(((MyMessage)(recieveVector.elementAt(index))).getAttachment()); 
            	fs4= MimeUtility.decodeText(((MyMessage)(recieveVector.elementAt(index))).getContent()); 
            	fs5= MimeUtility.decodeText(((MyMessage)(recieveVector.elementAt(index))).getRecievedDate().toString()); 
             }catch(Exception E){ 
            	 System.out.println("Erro!"); 
             } 
            	fromField.setText(fs1); 
             subjectField.setText(fs2); 
             attachField.setText(fs3); 
           //  System.out.println(((MyMessage)(recieveVector.elementAt(index))).getAttachment()); 
             contentArea.setText(fs4); 
             dateField.setText(fs5); 
        }  
        } 
} 
  class treeLis2 implements TreeSelectionListener,Serializable 
{       DefaultMutableTreeNode node; 
        int index=-1; 
        public void valueChanged(TreeSelectionEvent e)  
        { 
        node=(DefaultMutableTreeNode)sendTree.getLastSelectedPathComponent(); 
        for(int i=0;i=0) 
        { 
        	 String fs1=""; 
             String fs2=""; 
             String fs3=""; 
             String fs4=""; 
             String fs5=""; 
            	try{ 
            	fs1= MimeUtility.decodeText(findEmailAddress(((MyMessage)(sendVector.elementAt(index))).getAddress())); 
            	fs2= MimeUtility.decodeText(((MyMessage)(sendVector.elementAt(index))).getSubject()); 
            	fs3= MimeUtility.decodeText(((MyMessage)(sendVector.elementAt(index))).getAttachment()); 
            	fs4= MimeUtility.decodeText(((MyMessage)(sendVector.elementAt(index))).getContent()); 
            	fs5= MimeUtility.decodeText(((MyMessage)(sendVector.elementAt(index))).getRecievedDate().toString()); 
             }catch(Exception E){ 
            	 System.out.println("Erro!"); 
             } 
            	fromField.setText(fs1); 
             subjectField.setText(fs2); 
             attachField.setText(fs3); 
           //  System.out.println(((MyMessage)(recieveVector.elementAt(index))).getAttachment()); 
             dateField.setText(fs5); 
             contentArea.setText(fs4); 
             /* 
         fromField.setText(((MyMessage)(sendVector.elementAt(index))).getAddress()); 
         subjectField.setText(((MyMessage)(sendVector.elementAt(index))).getSubject()); 
         attachField.setText(((MyMessage)(sendVector.elementAt(index))).getAttachment()); 
         dateField.setText(((MyMessage)(sendVector.elementAt(index))).getRecievedDate()+""); 
         contentArea.setText(((MyMessage)(sendVector.elementAt(index))).getContent()); 
         */ 
        }  
         
 
} 
} 
   
   
   
   
   
   
  class recieveAction implements ActionListener,Serializable 
  { 
          public void actionPerformed(ActionEvent e) 
          {       wait.Start(); 
                    (new recieveThread()).start(); 
                    wait.setVisible(true); 
          } 
  } 
  class recieveThread extends Thread implements Serializable 
  { 
  String Server="pop3://"+User.getUserName()+":"+User.getPassWord()+"@"+User.getPop3Server()+"/INBOX"; 
      public void run() 
      { URLName ServerUrlName=new URLName(Server); 
               Properties props=new Properties(); 
        try 
    { 
        Session session=Session.getDefaultInstance(props,null); 
        Folder folder=session.getFolder(ServerUrlName); 
        if(folder==null) 
        { 
        JOptionPane.showMessageDialog(null,"Sorry,找不到所要的文件夹:"+Server); 
        } 
        else 
     { 
        folder.open(Folder.READ_WRITE); 
        Message[] messages=folder.getMessages(); 
        if(messages.length==0) 
        { 
        JOptionPane.showMessageDialog(null,"在你的邮箱里没有新的邮件!"); 
        folder.close(false); 
        } 
        else 
        { 
                for(int i=0;i;"); 
             if(foreindex!=-1&&backindex!=-1) 
             str=str.substring(foreindex+1,backindex); 
              return str; 
         
        } 
             catch(Exception e) 
        {  
                return str; 
        } 
        } 
         public String getEmailName(String str) 
        { 
             try{ 
             int foreindex=str.indexOf("<"); 
             if(foreindex!=-1) 
             str=str.substring(0,foreindex); 
             return str; 
         
        } 
             catch(Exception e) 
        {  
                return str; 
        } 
        } 
   
   
//end 
}