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

📄 appmainpane.java

📁 基于java的电子邮件群发系统,基于java的电子邮件群发系统
💻 JAVA
字号:
package com.cwq.batchmail.gui;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Rectangle;
import java.io.File;
import java.io.IOException;
import java.net.URL;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.filechooser.FileFilter;

import com.cwq.batchmail.DetailPacket;
import com.cwq.batchmail.htmltoolbar.HtmlToolBar;
import com.cwq.batchmail.log.Logger;
import com.cwq.batchmail.mail.LocalMailThreads;
import com.cwq.batchmail.mail.MailThreads;
import com.cwq.batchmail.mail.RemoteMailThreads;
import com.cwq.batchmail.util.LoadEmails;
import com.cwq.batchmail.util.LoadProxies;

import javax.swing.JTextArea;
import java.awt.GridBagConstraints;
import java.awt.event.MouseListener;

public class AppMainPane extends JPanel {

	private JTabbedPane jTabbedPane = null;
	
	private NormalPanel normalPanel = null;
	
	private SmtpPanel smtpPanel = null;
	
	private ComposePanel composePanel = null;

	private JPanel jPanel2 = null;

	private JScrollPane jScrollPane = null;

	private JTextArea jta_log = null;

	private JButton jb_clean = null;
	
	private JButton jb_stop = null;
	
	public AppMainPane() {
		this.setLayout(new BorderLayout());
		this.add(getJTabbedPane(), BorderLayout.CENTER);
	}
	
	private JTabbedPane getJTabbedPane() {
		if (jTabbedPane == null) {
			jTabbedPane = new JTabbedPane();
			jTabbedPane.addTab("基本设置", null, getNormalPanel(), null);
			jTabbedPane.addTab("SMTP设置", null, getSmtpPanel(), null);
			jTabbedPane.addTab("邮件正文", null, getComposePanel(), null);
			jTabbedPane.addTab("运行记录", null, getJPanel2(), null);
			
			/*
			MouseListener[] ms = jTabbedPane.getMouseListeners();
			for( int c=0; c<ms.length; c++) {
				jTabbedPane.removeMouseListener(ms[c]);
			}
			*/

		}
		return jTabbedPane;
	}
	
	private NormalPanel getNormalPanel() {
		if (normalPanel == null) {
			normalPanel = new NormalPanel() {
				@Override
				void alert(String msg) {
					javax.swing.JOptionPane.showMessageDialog(jTabbedPane, msg);
				}
				
				@Override
				void log(String log) {
					getJta_log().append(log + "\r\n");
				}
				
				@Override
				void onNextStep(boolean isContinue) {
					if( !isContinue )
						jTabbedPane.setSelectedIndex(0);
					else
						jTabbedPane.setSelectedIndex(1);
				}
			};
		}
		return normalPanel;
	}
	
	private ComposePanel getComposePanel() {
		if(composePanel == null) {
			composePanel = new ComposePanel() {

				@Override
				void alert(String msg) {
					// TODO Auto-generated method stub
					javax.swing.JOptionPane.showMessageDialog(jTabbedPane, msg);
				}
				
				@Override
				void alert(String msg, boolean log) {
					// TODO Auto-generated method stub
					alert(msg);
					log(msg);
				}

				@Override
				void log(String log) {
					// TODO Auto-generated method stub
					getJta_log().append(log + "\r\n");
				}

				@Override
				void start() {
					if( !DetailPacket.isOk() ) {
						alert("你还未设置好相应的配置,请先按步骤设置好!");
						jTabbedPane.setSelectedIndex(0);
						return ;
					}
					
					// TODO Auto-generated method stub
					new Thread() {
						public void run() {
							onStart();
							
							log("用户可以发送的EMAIL数量最多为: " + DetailPacket.limitEmails + " (个) !\r\n");
							if(DetailPacket.limitEmails == 0) {
								alert("对不起,可发送EMAIL数量为0,中止。", true);
							}
							else {
								try {
									Logger logger = new Logger(new com.cwq.batchmail.log.LogWriter() {
										public void write(String line) {
											log(line);
											// 移动滚动条
											//getJScrollPane().getVerticalScrollBar().setValue(getJScrollPane().getVerticalScrollBar().getMaximum());
										}
									});
									
									MailThreads mt = null;
									if( DetailPacket.useSmtpServer )
										mt = new LocalMailThreads(logger, DetailPacket.serverDomain, new File(DetailPacket.emailFile), DetailPacket.limitEmails, DetailPacket.sendMail);
									else
										mt = new RemoteMailThreads(logger, new File(DetailPacket.emailFile), new File(DetailPacket.smtpFile), DetailPacket.limitEmails);
									if( DetailPacket.useProxy && !DetailPacket.useSmtpServer ) {
										mt.loadProxies(new File(DetailPacket.proxyFile));
									}
									
									mt.run(DetailPacket.mailSubject, DetailPacket.mailBody, DetailPacket.threadCount);
									
									log("\r\n.............\r\n");
									
									alert("OK, 群发已经完成!", true);
									
								} catch(IOException ex) {
									ex.printStackTrace();
									alert("读配置文件的时候出现错误: " + ex.getMessage(), true);
								} catch(Exception ex) {
									ex.printStackTrace();
									alert("错误: " + ex.getMessage(), true);
								}
							}
							
							onEnd();
						}
					}.start();
					
					jTabbedPane.setSelectedIndex(3);
				}

				@Override
				void onPrevStep() {
					// TODO Auto-generated method stub
					jTabbedPane.setSelectedIndex(jTabbedPane.getSelectedIndex() - 1);
				}
				
			};
		}
		return composePanel;
	}
	
	private SmtpPanel getSmtpPanel() {
		if(smtpPanel == null) {
			smtpPanel = new SmtpPanel() {

				@Override
				void alert(String msg) {
					// TODO Auto-generated method stub
					javax.swing.JOptionPane.showMessageDialog(jTabbedPane, msg);
				}

				@Override
				void log(String log) {
					// TODO Auto-generated method stub
					getJta_log().append(log + "\r\n");
				}

				@Override
				void onNextStep(boolean isContinue) {
					// TODO Auto-generated method stub
					if( !isContinue )
						jTabbedPane.setSelectedIndex(1);
					else
						jTabbedPane.setSelectedIndex(2);
				}

				@Override
				void onPrevStep() {
					// TODO Auto-generated method stub
					jTabbedPane.setSelectedIndex(jTabbedPane.getSelectedIndex() - 1);
				}
				
			};
		}
		return smtpPanel;
	}
	
	private JPanel getJPanel2() {
		if (jPanel2 == null) {
			jPanel2 = new JPanel();
			jPanel2.setLayout(null);
			jPanel2.setBackground(Color.white);
			jPanel2.add(getJScrollPane(), null);
			jPanel2.add(getJb_stop(), null);
			jPanel2.add(getJb_clean(), null);
		}
		return jPanel2;
	}

	/**
	 * This method initializes jPanel3	
	 * 	
	 * @return javax.swing.JPanel	
	 */


	/**
	 * This method initializes jb_send	
	 * 	
	 * @return javax.swing.JButton	
	 */


	/**
	 * This method initializes jScrollPane	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getJScrollPane() {
		if (jScrollPane == null) {
			jScrollPane = new JScrollPane();
			jScrollPane.setBounds(new Rectangle(18, 12, 563, 264));
			jScrollPane.setViewportView(getJta_log());
		}
		return jScrollPane;
	}

	/**
	 * This method initializes jta_log	
	 * 	
	 * @return javax.swing.JTextArea	
	 */
	private JTextArea getJta_log() {
		if (jta_log == null) {
			jta_log = new JTextArea();
			jta_log.setEditable(false);
			
			jta_log.getDocument().addDocumentListener(new DocumentListener() {

				public void changedUpdate(DocumentEvent arg0) {
					// TODO Auto-generated method stub
					
				}

				public void insertUpdate(DocumentEvent arg0) {
					// TODO Auto-generated method stub
				}

				public void removeUpdate(DocumentEvent arg0) {
					// TODO Auto-generated method stub
					
				}
				
			});
		}
		return jta_log;
	}

	/**
	 * This method initializes jb_clean	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJb_clean() {
		if (jb_clean == null) {
			jb_clean = new JButton();
			jb_clean.setBounds(new Rectangle(464, 288, 91, 26));
			jb_clean.setText("清 空");
			
			jb_clean.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(java.awt.event.MouseEvent e) {
					getJta_log().setText("");
				}
			});
		}
		return jb_clean;
	}
	
	private JButton getJb_stop() {
		if (jb_stop == null) {
			jb_stop = new JButton();
			jb_stop.setBounds(new Rectangle(360, 288, 91, 26));
			jb_stop.setText("停 止");
			
			jb_stop.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(java.awt.event.MouseEvent e) {
					synchronized(jTabbedPane) {
						DetailPacket.isRunning = false;
					}
				}
			});
		}
		return jb_stop;
	}
	
}

⌨️ 快捷键说明

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