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

📄 smtppanel.java

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

import java.awt.Color;
import java.awt.Rectangle;
import java.awt.event.MouseEvent;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.filechooser.FileFilter;

import com.cwq.batchmail.DetailPacket;
import com.cwq.batchmail.htmltoolbar.HtmlToolBar;

abstract class SmtpPanel extends JPanel {

	private static final long serialVersionUID = 1L;
	private JTextField jtf_users = null;
	private JButton jb_showdlg2 = null;
	private JButton jb_next = null;
	private JButton jb_prev = null;
	private JCheckBox jcb_usesmtpserver = null;
	private JTextField jtf_serversendmail = null;
	
	abstract void alert(final String msg);
	abstract void log(final String log);
	abstract void onNextStep(final boolean isContinue);
	abstract void onPrevStep();

	public SmtpPanel() {
		// TODO Auto-generated constructor stub
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(300, 200);
		this.setLayout(null);
		this.setBackground(Color.white);
		
		JLabel jLabel1 = new JLabel();
		jLabel1.setBounds(new Rectangle(30, 73, 137, 20));
		jLabel1.setHorizontalAlignment(SwingConstants.RIGHT);
		jLabel1.setText("使用自带SMTP服务器:");
		this.add(jLabel1, null);
		this.add(getJcb_usesmtpserver(), null);
		
		JLabel jLabel2 = new JLabel();
		jLabel2.setBounds(new Rectangle(30, 103, 137, 20));
		jLabel2.setHorizontalAlignment(SwingConstants.RIGHT);
		jLabel2.setText("发件人EMAIL地址:");
		jLabel2.setFont(HtmlToolBar.font1);
		this.add(jLabel2, null);
		this.add(getJtf_serversendmail(), null);
		
		JLabel jLabel6 = new JLabel();
		jLabel6.setBounds(new Rectangle(174, 125, 400, 20));
		jLabel6.setHorizontalAlignment(SwingConstants.LEFT);
		jLabel6.setText("例如: " + DetailPacket.sendMail );
		jLabel6.setFont(HtmlToolBar.font1);
		JLabel jLabel7 = new JLabel();
		jLabel7.setBounds(new Rectangle(174, 143, 400, 20));
		jLabel7.setHorizontalAlignment(SwingConstants.LEFT);
		jLabel7.setText("smtp服务器域名会绑定@后面的网址 " + DetailPacket.serverDomain);
		jLabel7.setFont(HtmlToolBar.font1);
		this.add(jLabel6, null);
		this.add(jLabel7, null);
		
		JLabel jLabel = new JLabel();
		jLabel.setBounds(new Rectangle(30, 173, 137, 20));
		jLabel.setHorizontalAlignment(SwingConstants.RIGHT);
		jLabel.setText("SMTP用户配置文件:");
		JLabel jLabel3 = new JLabel();
		jLabel3.setBounds(new Rectangle(174, 195, 359, 23));
		jLabel3.setText("格式为: stmp服务器 端口 EMail 密码 最大收件人数");
		jLabel3.setFont(HtmlToolBar.font1);
		this.add(jLabel, null);
		this.add(getJtf_users(), null);
		this.add(jLabel3, null);
		this.add(getJb_showdlg2(), null);
		
		
		this.add(getJb_prev(), null);
		this.add(getJb_next(), null);
		
	}
	
	private JTextField getJtf_serversendmail() {
		if(jtf_serversendmail == null) {
			jtf_serversendmail = new JTextField(DetailPacket.sendMail);
			jtf_serversendmail.setBounds(new Rectangle(174, 103, 210, 21));
			jtf_serversendmail.setPreferredSize(jtf_serversendmail.getSize());
		}
		return jtf_serversendmail;
	}
	
	private JCheckBox getJcb_usesmtpserver() {
		if(jcb_usesmtpserver == null) {
			jcb_usesmtpserver = new JCheckBox();
			jcb_usesmtpserver.setBounds(new Rectangle(174, 73, 32, 20));
			jcb_usesmtpserver.setSelected(DetailPacket.useSmtpServer);
			jcb_usesmtpserver.setBackground(Color.white);
			jcb_usesmtpserver.setBorder(null);
			jcb_usesmtpserver.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(MouseEvent e) {
					jcb_usesmtpserver_State();
				}
			});
			jcb_usesmtpserver_State();
		}
		return jcb_usesmtpserver;
	}
	
	private void jcb_usesmtpserver_State() {
		if(getJcb_usesmtpserver().isSelected()) {
			getJtf_serversendmail().setEnabled(true);
			getJtf_users().setEnabled(false);
			getJb_showdlg2().setEnabled(false);
		}
		else {
			getJtf_serversendmail().setEnabled(false);
			getJtf_users().setEnabled(true);
			getJb_showdlg2().setEnabled(true);
		}
	}
		
		private JTextField getJtf_users() {
			if (jtf_users == null) {
				jtf_users = new JTextField();
				jtf_users.setBounds(new Rectangle(174, 173, 210, 21));
				jtf_users.setPreferredSize(jtf_users.getSize());
				jtf_users.setEditable(false);
			}
			return jtf_users;
		}
		
		private JButton getJb_showdlg2() {
			if (jb_showdlg2 == null) {
				jb_showdlg2 = new JButton();
				jb_showdlg2.setBounds(new Rectangle(399, 173, 66, 21));
				jb_showdlg2.setText("浏览");
				
				jb_showdlg2.addMouseListener(new java.awt.event.MouseAdapter() {
					public void mouseClicked(java.awt.event.MouseEvent e) {
						if(jb_showdlg2.isEnabled())
							fileChooser(getJtf_users(), "请选择SMTP用户配置文件 (*.txt | *.TXT)");
					}
				}); 
			}
			return jb_showdlg2;
		}
		
		private JButton getJb_prev() {
			if (jb_prev == null) {
				jb_prev = new JButton();
				jb_prev.setBounds(new Rectangle(360, 288, 91, 26));
				jb_prev.setText("上一步");
				jb_prev.addMouseListener(new java.awt.event.MouseAdapter() {
					public void mouseClicked(java.awt.event.MouseEvent e) {
						onPrevStep();
					}
				});
			}
			return jb_prev;
		}
		
		private JButton getJb_next() {
			if (jb_next == null) {
				jb_next = new JButton();
				jb_next.setBounds(new Rectangle(464, 288, 91, 26));
				jb_next.setText("下一步");
				jb_next.addMouseListener(new java.awt.event.MouseAdapter() {
					public void mouseClicked(java.awt.event.MouseEvent e) {
						if((getJcb_usesmtpserver().isSelected() && getJtf_serversendmail().getText().trim().length() == 0)
								|| (!getJcb_usesmtpserver().isSelected() && getJtf_users().getText().trim().length() == 0))
						{
							onNextStep(false);
							alert("请先选择相应的配置文件");
							return ;
						}
						DetailPacket.useSmtpServer = getJcb_usesmtpserver().isSelected();
						DetailPacket.smtpFile = getJtf_users().getText().trim();
						DetailPacket.sendMail = getJtf_serversendmail().getText().trim();
						DetailPacket.serverDomain = DetailPacket.sendMail.replaceFirst(".*\\@{1}", "");
						onNextStep(true);
					}
				});
			}
			return jb_next;
		}
		
		void fileChooser(final JTextField jtf, final String desc) {
			JFileChooser chooser = new JFileChooser();
		    FileFilter filter = new FileFilter() {
		    	public boolean accept(File f) {
		    		return f.isDirectory() || (f.isFile() && (
		    				f.getName().endsWith(".txt")
		    				|| f.getName().endsWith(".TXT")
		    				));
		    	}
		    	public String getDescription() {
		    		return desc;
		    	}
		    };
		    chooser.setFileFilter(filter);
		    int returnVal = chooser.showOpenDialog(this);
		    if(returnVal == JFileChooser.APPROVE_OPTION) {
		    	jtf.setText(chooser.getSelectedFile().getPath());
		    }
		}

}

⌨️ 快捷键说明

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