最近工作需要,做一个邮件群发系统,功能实现邮件群发,右键删除全选等功能,大致设计如下:
发送页面:
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 = 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
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);

大致功能就这些。
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
if((Boolean)tableModel.getValueAt(i,3)){
int key = i;
String value = (String)tableModel.getValueAt(i, 2);
tempMap.put(key, value);
}
}
if(tempMap.size()
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技能树首页概览92460 人正在系统学习中 相关资源:软件测试群软件测试群软件测试群软件测试群_测试群-其它文档类…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!