用java的开发简易邮件群发软件
2013-02-01 10:10
429 查看
最近工作需要,做一个邮件群发系统,功能实现邮件群发,右键删除全选等功能,大致设计如下:
smtp设置窗口:
发送页面:
导入功能设计:
final JButton importButton = new JButton("导入地址");
importButton.addActionListener(new ActionListener(){
//添加事件
public void actionPerformed(ActionEvent e){
//TODO 读取excel文件,写入list
JFileChooser fc=new JFileChooser();
int i=fc.showOpenDialog(scrollPane);
if(i==JFileChooser.APPROVE_OPTION){
File file=fc.getSelectedFile();
if(file.toString().endsWith("xls")){
String URL=file.getPath();
try{
List<List<String>> list = ExcelCommonUtil.readExcelCommon(file.toString(),true);
if(list==null || list.size()==0){
JOptionPane.showMessageDialog(null,"电子表格内容为空!");
return;
}
int listLength = list.size();
String [][] tableVales= new String[listLength][list.get(0).size()]; //数据
for(int j = 0; j < listLength;j++){
if(list.get(j).size()>0){
String id = OperateProperties.genId();
//tableVales[j][1]=list.get(j).get(excelCloumnId);
tableVales[j][1]=id;
if(list.get(j).size()>1){
tableVales[j][2]=list.get(j).get(excelCloumnEmail);
}else{
tableVales[j][2]= "";
}
}
int rowCount = table.getRowCount() +1; //行数加上1
Object[] temp = {String.valueOf(rowCount),tableVales[j][1],tableVales[j][2],true,INITSTATUS};
tableModel.addRow(temp);
}
table.updateUI();
}catch(Exception e1){
e1.printStackTrace();
JOptionPane.showMessageDialog(null,"读取电子表格文件异常!");
}
}else{
JOptionPane.showMessageDialog(null,"必须是excel2003电子表格文件!");
}
}
}
});
panel.add(importButton);
编辑发送功能:
大致功能就这些。
final JButton sendButton = new JButton("编辑发送");
sendButton.addActionListener(new ActionListener(){
//添加事件
public void actionPerformed(ActionEvent e){
username = OperateProperties.ReadProperties(filename, "username");
password = OperateProperties.ReadProperties(filename, "password");
smtp = OperateProperties.ReadProperties(filename, "smtp");
String excelCloumn = OperateProperties.ReadProperties(filename, "excelCloumnEmail");
excelCloumnEmail = Integer.parseInt(excelCloumn);
if(table.getRowCount()==0){
JOptionPane.showMessageDialog(null,"电子邮件地址为空!");
return;
}
//TODO 获取复选框值 tempList 供调用
for(int i = 0;i<table.getRowCount();i++){
if((Boolean)tableModel.getValueAt(i,3)){
int key = i;
String value = (String)tableModel.getValueAt(i, 2);
tempMap.put(key, value);
}
}
if(tempMap.size()<=0){
JOptionPane.showMessageDialog(null,"请选择要发送的邮件地址!");
return;
}
new Message();
title = Message.getEmailCap();
content = Message.getContent();
fujian = Message.getFujian();
color = new String[table.getRowCount()];
if(title!=null&& content!=null){
buttonActionPerformed(e);
}
Message.setEmailCap(null);
Message.setContent(null);
Message.setFujian(null);
}
});
panel.add(sendButton);
关键代码:
1.右键功能:
声明邮件菜单:
private JPopupMenu popupMenu;
初始化邮件菜单内容:
//右键
popupMenu = new JPopupMenu();
del = new JMenuItem("删除");
slectAll = new JMenuItem("全选");
popupMenu.add(del);
popupMenu.add(slectAll);
添加事件:
//删除事件
del.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int selectedRow = table.getSelectedRow();//获得选中行的索引
if(selectedRow!=-1) //存在选中行
{
String id = (String) tableModel.getValueAt(selectedRow, 0);
String genId = (String) tableModel.getValueAt(selectedRow, 1);
String email = (String) tableModel.getValueAt(selectedRow, 2);
boolean select = (Boolean) tableModel.getValueAt(selectedRow, 3);
String status = (String) tableModel.getValueAt(selectedRow, 4);
Object[] temp = {id,genId,email,select,status};
tableModel.removeRow(temp); //删除行
//强制刷新界面
table.updateUI();
}else{
JOptionPane.showMessageDialog(null,"请选择一行");
}
}});
smtp设置窗口:
发送页面:
导入功能设计:
final JButton importButton = new JButton("导入地址");
importButton.addActionListener(new ActionListener(){
//添加事件
public void actionPerformed(ActionEvent e){
//TODO 读取excel文件,写入list
JFileChooser fc=new JFileChooser();
int i=fc.showOpenDialog(scrollPane);
if(i==JFileChooser.APPROVE_OPTION){
File file=fc.getSelectedFile();
if(file.toString().endsWith("xls")){
String URL=file.getPath();
try{
List<List<String>> list = ExcelCommonUtil.readExcelCommon(file.toString(),true);
if(list==null || list.size()==0){
JOptionPane.showMessageDialog(null,"电子表格内容为空!");
return;
}
int listLength = list.size();
String [][] tableVales= new String[listLength][list.get(0).size()]; //数据
for(int j = 0; j < listLength;j++){
if(list.get(j).size()>0){
String id = OperateProperties.genId();
//tableVales[j][1]=list.get(j).get(excelCloumnId);
tableVales[j][1]=id;
if(list.get(j).size()>1){
tableVales[j][2]=list.get(j).get(excelCloumnEmail);
}else{
tableVales[j][2]= "";
}
}
int rowCount = table.getRowCount() +1; //行数加上1
Object[] temp = {String.valueOf(rowCount),tableVales[j][1],tableVales[j][2],true,INITSTATUS};
tableModel.addRow(temp);
}
table.updateUI();
}catch(Exception e1){
e1.printStackTrace();
JOptionPane.showMessageDialog(null,"读取电子表格文件异常!");
}
}else{
JOptionPane.showMessageDialog(null,"必须是excel2003电子表格文件!");
}
}
}
});
panel.add(importButton);
编辑发送功能:
大致功能就这些。
final JButton sendButton = new JButton("编辑发送");
sendButton.addActionListener(new ActionListener(){
//添加事件
public void actionPerformed(ActionEvent e){
username = OperateProperties.ReadProperties(filename, "username");
password = OperateProperties.ReadProperties(filename, "password");
smtp = OperateProperties.ReadProperties(filename, "smtp");
String excelCloumn = OperateProperties.ReadProperties(filename, "excelCloumnEmail");
excelCloumnEmail = Integer.parseInt(excelCloumn);
if(table.getRowCount()==0){
JOptionPane.showMessageDialog(null,"电子邮件地址为空!");
return;
}
//TODO 获取复选框值 tempList 供调用
for(int i = 0;i<table.getRowCount();i++){
if((Boolean)tableModel.getValueAt(i,3)){
int key = i;
String value = (String)tableModel.getValueAt(i, 2);
tempMap.put(key, value);
}
}
if(tempMap.size()<=0){
JOptionPane.showMessageDialog(null,"请选择要发送的邮件地址!");
return;
}
new Message();
title = Message.getEmailCap();
content = Message.getContent();
fujian = Message.getFujian();
color = new String[table.getRowCount()];
if(title!=null&& content!=null){
buttonActionPerformed(e);
}
Message.setEmailCap(null);
Message.setContent(null);
Message.setFujian(null);
}
});
panel.add(sendButton);
关键代码:
1.右键功能:
声明邮件菜单:
private JPopupMenu popupMenu;
初始化邮件菜单内容:
//右键
popupMenu = new JPopupMenu();
del = new JMenuItem("删除");
slectAll = new JMenuItem("全选");
popupMenu.add(del);
popupMenu.add(slectAll);
添加事件:
//删除事件
del.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int selectedRow = table.getSelectedRow();//获得选中行的索引
if(selectedRow!=-1) //存在选中行
{
String id = (String) tableModel.getValueAt(selectedRow, 0);
String genId = (String) tableModel.getValueAt(selectedRow, 1);
String email = (String) tableModel.getValueAt(selectedRow, 2);
boolean select = (Boolean) tableModel.getValueAt(selectedRow, 3);
String status = (String) tableModel.getValueAt(selectedRow, 4);
Object[] temp = {id,genId,email,select,status};
tableModel.removeRow(temp); //删除行
//强制刷新界面
table.updateUI();
}else{
JOptionPane.showMessageDialog(null,"请选择一行");
}
}});
相关文章推荐
- java开发邮件群发项目中遇到的问题
- 安卓、java开发软件官网和相关不错的网站软件下载地址
- java开发的简易学生成绩管理系统
- I学霸官方免费教程二(拓展):Java软件开发环境的安装与配置
- Java软件开发经验总结
- JAVA软件开发的人员分工问题(试想)
- Java邮件开发-电子邮件的基本知识(一)
- Java企业级应用软件开发
- 用Java设计下载软件-Java基础-Java-编程开发
- 项目视频讲解_java邮件开发视频教程
- 用JAVA开发简易QQ登录界面
- 用C#打造匿名邮件群发软件
- Java 建模:子整体软件开发
- java实现邮件群发带附件
- 纪念参加第八届 蓝桥杯java 软件开发(C组)
- Java软件开发工程师实习生面试经验分享总结
- java邮件开发详解笔记(创建一个内嵌图片和附件的邮件)
- 第七届Java软件开发C组
- 基于java技术的软件开发架构总结
- 基于java技术的软件开发架构总结