📄 smtppanel.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 + -