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

📄 mailreceiveui.java

📁 自己编写的邮件管理系统程序源代码,方便管理自己的邮件
💻 JAVA
字号:
package mail.ui;import java.awt.Color;import java.awt.Rectangle;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.LinkedList;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import mail.control.receive.EmailReceive;import mail.message.MailMessage;public class MailReceiveUI extends JFrame implements ActionListener{  JPanel panelList = new JPanel();  JScrollPane jspList=new JScrollPane(panelList);  JButton bReceive = new JButton();  JButton bWriteNew = new JButton();  JButton bSetting = new JButton();  /**   * 邮件客户端   */  private MailClientUI mailClient;    /**   * 保存邮件的链表   */  LinkedList emailList=null;    public MailReceiveUI(MailClientUI mailClient)  {      initUI();      this.mailClient = mailClient;  }    private void initUI() {    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    JFrame.setDefaultLookAndFeelDecorated(true);          this.getContentPane().setBackground(Color.lightGray);    this.getContentPane().setLayout(null);    panelList.setBackground(Color.white);    panelList.setBounds(new Rectangle(20, 15, 585, 420));    jspList.setBounds(new Rectangle(25, 15, 580, 420));    jspList.setBorder(BorderFactory.createLineBorder(Color.black));    bReceive.setBackground(Color.white);    bReceive.setBorder(BorderFactory.createLineBorder(Color.black));    bReceive.setText("接收邮件");    bReceive.setBounds(new Rectangle(150, 450, 100, 31));    bWriteNew.setBackground(Color.white);    bWriteNew.setBorder(BorderFactory.createLineBorder(Color.black));    bWriteNew.setText("撰写新邮件");    bWriteNew.setBounds(new Rectangle(265, 450, 100, 31));    bSetting.setBackground(Color.white);    bSetting.setBorder(BorderFactory.createLineBorder(Color.black));    bSetting.setText("设置帐户");    bSetting.setBounds(new Rectangle(380, 450, 100, 31));    this.getContentPane().add(jspList, null);    this.getContentPane().add(bReceive, null);    this.getContentPane().add(bSetting, null);    this.getContentPane().add(bWriteNew, null);    panelList.setLayout(null);        this.bReceive.addActionListener(this);    this.bSetting.addActionListener(this);    this.bWriteNew.addActionListener(this);        this.setSize(630,530);    this.setLocation(80,10);    this.setTitle("接收邮件窗口");  }  public static void main(String[] args)  {      new MailReceiveUI(new MailClientUI()).setVisible(true);  }  public void actionPerformed(ActionEvent e)  {      if(e.getSource().equals(this.bReceive))      {          receive();      }      else if(e.getSource().equals(this.bSetting))      {          setting();      }      else if(e.getSource().equals(this.bWriteNew))      {          writeNew();      }else      {          MailButton mailB=(MailButton)e.getSource();          doReadOrReplyOrTSend(mailB.getType(),mailB.getIndex());      }  }  /**   * 接受邮件   *   */  private void receive()  {      emailList=null;      EmailReceive receiveEmail=new EmailReceive();      receiveEmail.setPopServer(mailClient.getPop3Server());      receiveEmail.setPopPassword(mailClient.getEmailPsw());      int endIndex=mailClient.getEmailName().indexOf("@");      receiveEmail.setPopUser(mailClient.getEmailName().substring(0,endIndex));           receiveEmail.receive();      emailList=receiveEmail.getEmailList();      displayMail();//显示  }  /**   * 显示邮件   *   */  private void displayMail()  {      if(emailList==null)       {          error("您没有读取邮件,无法显示");      }      panelList.removeAll();//删除所有控件      for(int i=0;i<emailList.size();i++)      {            MailMessage item=(MailMessage)emailList.get(i);          JLabel labIndex=new JLabel(i+":");          labIndex.setBounds(new Rectangle(0, 5+30*i, 15, 25));                    JLabel labFrom=new JLabel(item.getFrom());          labFrom.setBounds(new Rectangle(20, 5+30*i, 150, 25));          JLabel labSubject=new JLabel(item.getSubject());          labSubject.setBounds(new Rectangle(180, 5+30*i, 200, 25));                    MailButton bRead=new MailButton("阅读");          bRead.setBounds(new Rectangle(390, 5+30*i, 60, 25));          bRead.setIndex(i);          bRead.setType(0);                    MailButton bReply=new MailButton("回复");          bReply.setBounds(new Rectangle(455, 5+30*i, 60, 25));          bReply.setIndex(i);          bReply.setType(1);                    MailButton bTSend=new MailButton("转发");          bTSend.setBounds(new Rectangle(520, 5+30*i, 60, 25));          bTSend.setIndex(i);          bTSend.setType(2);                    bRead.addActionListener(this);          bReply.addActionListener(this);          bTSend.addActionListener(this);                    panelList.add(labIndex);           panelList.add(labFrom);           panelList.add(labSubject);          panelList.add(bRead);           panelList.add(bReply);                  panelList.add(bTSend);         }      panelList.updateUI();      info("您接收了:"+emailList.size()+"封邮件");  }  /**   * 设置帐户信息   *   */  private void setting()  {      this.setVisible(false);      mailClient.getAccountUI().setVisible(true);  }  /**   * 撰写新邮件   *   */  private void writeNew()  {      this.setVisible(false);      mailClient.getSendUI().newMail();  }  /**    * 读邮件或回复或转发   * type:类型   * index;编号   */  private void doReadOrReplyOrTSend(int type,int index)  {      switch(type)      {          case 0:          {              readMail(index);              break;          }          case 1:          {              replyMail(index);              break;          }          case 2:          {              TSendMail(index);              break;          }      }  }  /**   * 读邮件   *   */  private void readMail(int index)  {      MailMessage item=(MailMessage)emailList.get(index);      mailClient.getDisplayUI().displayMailMessage(item);  }  /**   * 回复邮件   *   */  private void replyMail(int index)  {      MailMessage item=(MailMessage)emailList.get(index);      mailClient.getSendUI().replyMailMessage(item);  }  /**   * 转发邮件   *   */  private void TSendMail(int index)  {      MailMessage item=(MailMessage)emailList.get(index);      mailClient.getSendUI().TSendMailMessage(item);  }  /**   * 显示信息   *    * @param errorInfo   */  private synchronized void info(String info)  {      mailClient.log(info);      JOptionPane.showMessageDialog(this, info);  }  /**   * 显示错误信息   *    * @param errorInfo   */  private synchronized void error(String errorInfo)  {      mailClient.errorLog(errorInfo);      JOptionPane.showMessageDialog(this, errorInfo);  }}

⌨️ 快捷键说明

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