package com.resume.sky;
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.*;
import java.util.Enumeration;
import java.util.Properties;
import javax.swing.*;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.text.Document;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
/**
* 查询已下载的简历界面
* @author qKF9319
*
*/
public class MyResumePanel extends JPanel implements ActionListener,
TreeSelectionListener {
private String rootPath;
private String selectPath = "";
private Properties pro = new Properties();
private File storeDir;
private JPanel paraPanel;
private JPanel jTreePanel;
private JPanel operTreePanel;
private JPanel viewPanel;
private JTree resumeTree;
private JButton changeDirButton;
private JButton refreshButton;
private JButton delButton;
private JButton openTreeButton;
private JPanel editPanel;
private JButton saveButton;
private JButton editButton;
private JScrollPane jTreeScrollPane;
private JEditorPane editorPane;
private JScrollPane jViewScrollPane;
private DefaultMutableTreeNode rootNode;
private DefaultTreeModel jTreeModel;
private TreeDataModel threadTDataModel;
private JSplitPane spPane;
private JPopupMenu jTreePopupMenu;
private JMenuItem jTreeMenuItem1;
private JMenuItem jTreeMenuItem2;
private JMenuItem jTreeMenuItem3;
public MyResumePanel() {
try {
pro.load(new FileInputStream(new File(System
.getProperty("user.dir")
+ "//img//log.properties")));//装载存储简历路径的属性文件
rootPath = pro.getProperty("rootStorePath");
storeDir = new File(rootPath);
jbInit();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "加载存储路径出错!", "出错",
JOptionPane.ERROR_MESSAGE);
}
}
public void jbInit() {
this.setLayout(new BorderLayout(4, 4));
paraPanel = new JPanel();
paraPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory
.createEtchedBorder(), "参数设置"));
changeDirButton = new JButton("更改简历库路径");
refreshButton = new JButton("刷新");
changeDirButton.addActionListener(this);
refreshButton.addActionListener(this);
paraPanel.add(changeDirButton);
jTreePanel = new JPanel();
jTreePanel.setLayout(new BorderLayout());
jTreePanel.setBorder(BorderFactory.createTitledBorder(BorderFactory
.createEtchedBorder(), ""));
operTreePanel = new JPanel();
operTreePanel.setBorder(BorderFactory.createTitledBorder(BorderFactory
.createEtchedBorder(), ""));
openTreeButton = new JButton("展开");
delButton = new JButton("删除");
openTreeButton.addActionListener(this);
delButton.addActionListener(this);
operTreePanel.add(openTreeButton);
operTreePanel.add(delButton);
operTreePanel.add(refreshButton);
viewPanel = new JPanel();
viewPanel.setLayout(new BorderLayout());
rootNode = new DefaultMutableTreeNode("简历库");// 定义树结点
jTreeModel = new DefaultTreeModel(rootNode);//定义树模型:添加根节点rootNode
resumeTree = new JTree(jTreeModel);
//设置Tree的选择模式为一次只能选择一个节点
resumeTree.getSelectionModel().setSelectionMode(
TreeSelectionModel.SINGLE_TREE_SELECTION);
resumeTree.addTreeSelectionListener(this);
resumeTree.addMouseListener(new MyResumePanel_jTreeModel_mouseAdapter(
this));
resumeTree.setAutoscrolls(true);
//rootNode.getTreeSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);//设置单选模式
jTreeScrollPane = new JScrollPane();
jTreeScrollPane.getViewport().add(resumeTree, null);
jTreePanel.add(operTreePanel, BorderLayout.NORTH);
jTreePanel.add(jTreeScrollPane, BorderLayout.CENTER);
editorPane = new JEditorPane();
editorPane.setBorder(BorderFactory.createTitledBorder(BorderFactory
.createEtchedBorder(), "简历信息"));
editorPane.setEditable(false);
jViewScrollPane = new JScrollPane(editorPane);
//jViewScrollPane.setBounds(new Rectangle(0, 0, 500, 600));
viewPanel.add(jViewScrollPane);
saveButton = new JButton("保存简历");
saveButton.setEnabled(false);
editButton = new JButton("编辑简历");
editButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
editButton.setEnabled(false);
saveButton.setEnabled(true);
editorPane.setEditable(true);
}
});
saveButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
editButton.setEnabled(true);
saveButton.setEnabled(false);
editorPane.setEditable(false);
try {
File resumeFile = new File(selectPath);
if (resumeFile.isFile()) {
ParseTxtContent ptContent = new ParseTxtContent();
ptContent.writeFromBuffer(editorPane.getText(),
new FileOutputStream(resumeFile));//保存修改过的简历
JOptionPane.showMessageDialog(null, "保存成功!", "提示",
JOptionPane.INFORMATION_MESSAGE);
}
} catch (Exception ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(null, "打开文件出错!", "出错",
JOptionPane.ERROR_MESSAGE);
}
}
});
editPanel = new JPanel();
editPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory
.createEtchedBorder(), "修改简历"));
editPanel.add(editButton);
editPanel.add(saveButton);
viewPanel.add(editPanel, BorderLayout.SOUTH);
this.add(paraPanel, BorderLayout.NORTH);
spPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, false, jTreePanel,
viewPanel);
spPane.setOneTouchExpandable(true);//设置JSplitPane是否可以展开或收起(如同文件总管一般),设为true表示打开此功能.
spPane.setDividerSize(8);//设置分隔线宽度的大小,以pixel为计算单位。
this.add(spPane, BorderLayout.CENTER);
jTreePopupMenu = new JPopupMenu();
jTreeMenuItem1 = new JMenuItem("展开");
jTreeMenuItem2 = new JMenuItem("删除");
jTreeMenuItem3 = new JMenuItem("刷新");
jTreeMenuItem1.addActionListener(this);
jTreeMenuItem2.addActionListener(this);
jTreeMenuItem3.addActionListener(this);
jTreePopupMenu.add(jTreeMenuItem1);
jTreePopupMenu.addSeparator();
jTreePopupMenu.add(jTreeMenuItem2);
jTreePopupMenu.addSeparator();
jTreePopupMenu.add(jTreeMenuItem3);
TreePath visiblePath = new TreePath(jTreeModel.getRoot());
threadTDataModel = new TreeDataModel(rootPath, visiblePath); //获得路径;
Thread t = new Thread(threadTDataModel);
t.start();//树结构的初始化
}
public String getStoreRootPath() {
return storeDir.getAbsolutePath();
}
public void actionPerformed(ActionEvent evt) {
try {
if (evt.getSource() == changeDirButton) {//更改简历库的根路径
final JFrame frame = new JFrame();
frame.setLayout(new BorderLayout(2, 2));
frame.setTitle("更改简历库路径");
frame.setBounds(240, 150, 550, 100);
JPanel jInfoPanel = new JPanel();
JLabel jMesg = new JLabel(
"<html><p align=center><b>简历存放的根目录</b></p></html>",
JLabel.CENTER);
final JTextField inputPathField = new JTextField(rootPath);
jMesg.setFont(new Font("宋体", Font.PLAIN, 12));
jInfoPanel.add(jMesg);
jInfoPanel.add(inputPathField);
frame.add(jInfoPanel, BorderLayout.CENTER);
JButton sureButton = new JButton("确 定");
sureButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String inputSPath = inputPathField.getText().trim();
inputSPath = inputSPath.replace("'/'", "//");
rootPath = inputSPath;
storeDir = new File(inputSPath);
if (!storeDir.exists())
storeDir.mkdir();
String pathContent = "rootStorePath=" + rootPath;
try {
File f = new File(System.getProperty("user.dir")
+ "//img//log.properties");
if(f.exists())
{
f.delete();
f.createNewFile();
}
FileOutputStream out = new FileOutputStream(f);
ParseTxtContent tempP=new ParseTxtContent();
tempP.writeFromBuffer(pathContent, out);
out.close();
frame.dispose();
JOptionPane.showMessageDialog(null, "创建成功!新的路径是:"
+ storeDir.getAbsolutePath(), "提示",
JOptionPane.INFORMATION_MESSAGE);
}
catch (Exception ex) {
JOptionPane.showMessageDialog(null, "保存存储路径出错!",
"出错", JOptionPane.ERROR_MESSAGE);
}
}
});
JPanel jExitPanel = new JPanel();
jExitPanel.add(sureButton);
frame.add(jExitPanel, BorderLayout.SOUTH);
frame.setVisible(true);
frame.setResizable(false);
} else {
if (evt.getSource() == openTreeButton
|| evt.getSource() == jTreeMenuItem1)//展开树
{
if (resumeTree.getSelectionPath() != null) {
viewNode((DefaultMutableTreeNode) resumeTree
.getSelectionPath().getLastPathComponent());
} else {
JOptionPane.showMessageDialog(null,
"请选择根目录下的一个文件或者文件夹!", "提示",
JOptionPane.INFORMATION_MESSAGE);
}
} else {
if (evt.getSource() == refreshButton
|| evt.getSource() == jTreeMenuItem3)//刷新树
{
delNode((DefaultMutableTreeNode) jTreeModel.getRoot());
TreePath visiblePath = new TreePath(jTreeModel
.getRoot());
threadTDataModel = new TreeDataModel(rootPath,
visiblePath); //获得路径;
Thread t = new Thread(threadTDataModel);
t.start();//树结构的初始化
} else {
if (evt.getSource() == delButton
|| evt.getSource() == jTreeMenuItem2)//删除树
{
Thread delThread = new Thread() {
public void run() {
TreePath currentSelection = resumeTree
.getSelectionPath();
if (currentSelection != null) {
if (JOptionPane.showConfirmDialog(null,
"确定要删除吗(资料将被删除)?", "提示",
JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode) (currentSelection
.getLastPathComponent());
DefaultMutableTreeNode parent = (DefaultMutableTreeNode) (currentNode
.getParent());
if (parent != null) {
Object tp[] = currentSelection
.getPath();
StringBuffer sb = new StringBuffer();
sb.append(rootPath);
for (int i = 1; i < tp.length; i++) {
sb.append("//" + tp[i]);
}
delFile(sb.toString());
jTreeModel
.removeNodeFromParent(currentNode);
} else
JOptionPane
.showMessageDialog(
null,
"请选择根目录下的一个文件或者文件夹!",
"提示",
JOptionPane.INFORMATION_MESSAGE);
}
} else {
JOptionPane
.showMessageDialog(
null,
"请选择根目录下的一个文件或者文件夹!",
"提示",
JOptionPane.INFORMATION_MESSAGE);
}
}
};
delThread.start();
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "运行出错,请检查出错原因!", "出错",
JOptionPane.ERROR_MESSAGE);
}
}
/**
* 树的事件触发操作:打开树
*/
public void valueChanged(TreeSelectionEvent e) {
try {
editButton.setEnabled(true);
saveButton.setEnabled(false);
Object tp[] = e.getPath().getPath();
StringBuffer sb = new StringBuffer();
sb.append(rootPath);
for (int i = 1; i < tp.length; i++) {
sb.append("//" + tp[i]);
}
selectPath = sb.toString();
File resumeFile = new File(selectPath);
if (resumeFile.isFile()) {
String rPath = resumeFile.toURI().toURL().toString();//注意要转换为URL形式
Document doc = editorPane.getDocument();
doc.putProperty(Document.StreamDescriptionProperty, null);
editorPane.setPage(rPath);
}
} catch (Exception ex) {
ex.printStackTrace();
JOptionPane.showMessageDialog(null, "打开文件出错!", "出错",
JOptionPane.ERROR_MESSAGE);
}
}
private void viewNode(DefaultMutableTreeNode tNode) { //展开树
for (Enumeration nodes = tNode.breadthFirstEnumeration(); nodes
.hasMoreElements();) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) nodes
.nextElement();
resumeTree.expandPath(new TreePath(node.getPath()));
}
}
public void delNode(DefaultMutableTreeNode tNode) { //删除tNode下的所有节点以及后续子节点
TreePath currentSelection = new TreePath(tNode);
if (currentSelection != null) {
Enumeration nodes = rootNode.children();
while (nodes.hasMoreElements()) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) nodes
.nextElement();
DefaultMutableTreeNode parent = (DefaultMutableTreeNode) (node
.getParent());
if (parent != null) {
jTreeModel.removeNodeFromParent(node);//通知它从其父节点中移除节点
}
nodes = rootNode.children();//注意这里必须更新nodes,否则不能删除完全
}
}
}
public void delFile(String delPath) { //删除指定路径下的所有文件和子文件夹
File searchDir = new File(delPath);
if (searchDir.isFile()) {
searchDir.delete();
return;
}
String[] list = searchDir.list();
int length = list.length;
for (int i = 0; i < length; i++) {
File resumeFile = new File(delPath + "//" + list[i]); //待搜索文件夹
if (!resumeFile.isFile()) //判断是否为文件
delFile(resumeFile.getPath());//否则进入子文件夹递归删除
resumeFile.delete();
}
searchDir.delete();
}
/**
* 树部分弹出菜单
* @param e
*/
public void jTree_mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
jTreePopupMenu.show(e.getComponent(), e.getX(), e.getY());
}
}
class TreeDataModel implements Runnable {
private String rootPath;
private File rootDir;
private TreePath visiblePath;
public TreeDataModel(String rootPath, TreePath visiblePath) {
this.rootPath = rootPath;
rootDir = new File(rootPath);
this.visiblePath = visiblePath;//获得路径
}
public void run() {
//返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
if (rootDir.isDirectory()) {
String[] list = rootDir.list();
initTree(list, rootPath, visiblePath);
}
}
/**
*
* @param list:当前文件夹下的文件和子文件夹
* @param rootPath:当前文件夹的路径
* @param visiblePath:当前文件(文件夹)在树中的路径
*/
public void initTree(String[] list, String rootPath,
TreePath visiblePath) {
for (int i = 0; i < list.length; i++) {
//tp=resumeTree.getSelectionPath(); //获得路径
DefaultMutableTreeNode dmtn = null; //定义一个新节点
if (visiblePath == null) { //判断获得的节点是否为空
dmtn = rootNode; //如果为空就设定新节点为根节点
} else {
dmtn = (DefaultMutableTreeNode) (visiblePath
.getLastPathComponent());//否则就设为当前节点
}
DefaultMutableTreeNode chileNode = new DefaultMutableTreeNode(
list[i]); //定义一个新节点(用于加入到树中)
jTreeModel
.insertNodeInto(chileNode, dmtn, dmtn.getChildCount()); //添加节点
File searchDir = new File(rootPath + "//" + list[i]); //待搜索文件夹
if (searchDir.isDirectory()) { //递归加入节点
resumeTree.setSelectionPath(new TreePath(chileNode
.getPath()));
TreePath currentPath = resumeTree.getSelectionPath(); //获得路径:形式如[简历库 , test]
initTree(searchDir.list(), searchDir.getPath(), currentPath);
}
}
}
}
/**
* 鼠标操作适配器
* @author qKF9319
*
*/
class MyResumePanel_jTreeModel_mouseAdapter extends MouseAdapter {
private MyResumePanel adaptee;
MyResumePanel_jTreeModel_mouseAdapter(MyResumePanel adaptee) {
this.adaptee = adaptee;
}
public void mouseReleased(MouseEvent e) {
adaptee.jTree_mouseReleased(e);
}
}
}
------------------------------
package com.resume.sky;
import java.io.*;
import java.net.URI;
import java.net.URL;
import java.net.URLConnection;
/**
* 文件流操作类
* @author qKF9319
*
*/
public class ParseTxtContent {
public static String path=ParseTxtContent.class.getResource("").toString();
/**
* 将流中的文本读入一个 StringBuffer 中
* @throws IOException
*/
public String readToBuffer(InputStream is)
throws IOException {
String line; // 用来保存每行读取的内容
StringBuffer buffer=new StringBuffer();//读取的所有文本内容
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF-8"));//注意要和浏览器查看网页的编码方式一致
line = reader.readLine(); // 读取第一行
while (line != null) { // 如果 line 为空说明读完了
buffer.append(line); // 将读到的内容添加到 buffer 中
buffer.append("/n"); // 添加换行符
line = reader.readLine(); // 读取下一行
}
return buffer.toString();
}
/**
* 将流中的文本读入一个 StringBuffer 中
* @throws IOException
*/
public String readToNormalBuffer(InputStream is)
throws IOException {
String line; // 用来保存每行读取的内容
StringBuffer buffer=new StringBuffer();//读取的所有文本内容
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
line = reader.readLine(); // 读取第一行
while (line != null) { // 如果 line 为空说明读完了
buffer.append(line); // 将读到的内容添加到 buffer 中
buffer.append("/n"); // 添加换行符
line = reader.readLine(); // 读取下一行
}
return buffer.toString();
}
/**
* 将 StringBuffer 中的内容读出到流中
*/
public void writeFromBuffer(String buffer, OutputStream os) {
// 用 PrintStream 可以方便的把内容输出到输出流中
// 其对象的用法和 System.out 一样
// (System.out 本身就是 PrintStream 对象)
PrintStream ps = new PrintStream(os);
ps.println(buffer);
}
/**
* 从输入流中拷贝内容到输入流中
* @throws IOException
*/
public void copyStream(InputStream is, OutputStream os) throws IOException {
// 这个读过过程可以参阅 readToBuffer 中的注释
String line;
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
PrintWriter writer = new PrintWriter(new OutputStreamWriter(os));
line = reader.readLine();
while (line != null) {
writer.println(line);
line = reader.readLine();
}
writer.flush(); // 最后确定要把输出流中的东西都写出去了
// 这里不关闭 writer 是因为 os 是从外面传进来的
// 既然不是从这里打开的,也就不从这里关闭
// 如果关闭的 writer,封装在里面的 os 也就被关了
}
/**
* 调用 copyStream(InputStream, OutputStream) 方法拷贝文本文件
*/
public void copyTextFile(File inFilename, File outFilename)
throws IOException {
// 先根据输入/输出文件生成相应的输入/输出流
InputStream is = new FileInputStream(inFilename);
OutputStream os = new FileOutputStream(outFilename);
copyStream(is, os); // 用 copyStream 拷贝内容
is.close(); // is 是在这里打开的,所以需要关闭
os.close(); // os 是在这里打开的,所以需要关闭
}
public static void main(String[] args) throws Exception {
ParseTxtContent test = new ParseTxtContent();
URL pathURL=ParseTxtContent.class.getResource("test.txt");
//URL webContextURL=new URL("http://ehr.chinahr.com/Resume/ResumeCenter/ResumeSearch6.aspx");
//URLConnection conn = webContextURL.openConnection();
//conn.setConnectTimeout(20000);
//BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
//File downPageFile=new File(pathURL.toURI());
//FileOutputStream fos = new FileOutputStream(downPageFile);//输出的路径
// String str = br.readLine();
// while (str != null) {
// fos.write(str.getBytes());
// str = br.readLine();
// }
// 读文本
//URI pathURI=webContextURL.toURI();
URI pathURI=pathURL.toURI();
File inputFile=new File(pathURI);
InputStream is =new FileInputStream(inputFile);
String readRes=test.readToBuffer(is);
//System.out.println(readRes); // 将读到 buffer 中的内容写出来
is.close();
StringBuffer buffer = new StringBuffer();
int searchContentTempIndex= readRes.indexOf("<!-- 现职位/链接 -->");
int searchContentSIndex= readRes.indexOf("<a href",searchContentTempIndex);
int totalRes=0;
while(searchContentTempIndex!=-1)//搜索符合要求的内容
{
int searchContentEIndex= readRes.indexOf("</a>",searchContentSIndex);
buffer.append(readRes.substring(searchContentSIndex, searchContentEIndex+4)+"/r/n");//注意添加/r/n
searchContentTempIndex= readRes.indexOf("<!-- 现职位/链接 -->",searchContentEIndex);
searchContentSIndex= readRes.indexOf("<a href",searchContentTempIndex);
if(++totalRes>4)break;
}
readRes=null;
System.out.println(buffer); // 将读到 buffer 中的内容写出来
// 写文本
File outPutFile=new File(inputFile.getParent()+"//result.txt");//注意路径带//
test.writeFromBuffer(buffer.toString(),new FileOutputStream(outPutFile));
}
}
---------------------------------------
package com.resume.sky;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;
/**
* 菜单类
* @author qKF9319
*
*/
public class ResumeMenu extends JPanel implements ActionListener {
private JMenuBar mb = new JMenuBar();
private JMenu fm = new JMenu("文件");
private JMenu hm = new JMenu("帮助");
JMenuItem[] file = { new JMenuItem("打开简历..."), new JMenuItem("退出") };
JMenuItem[] help = { new JMenuItem("说明"), new JMenuItem("关于...")};
public ResumeMenu() {
this.setLayout(new BorderLayout());
for (int i = 0; i < help.length; i++) {
hm.add(help[i]);
help[i].addActionListener(this);
}
for (int i = 0; i < file.length; i++) {
fm.add(file[i]);
file[i].addActionListener(this);
}
mb.add(fm);
mb.add(hm);
fm.addActionListener(this);
hm.addActionListener(this);
this.add(mb);
}
public void actionPerformed(ActionEvent evt) {
if (evt.getActionCommand().equals("打开简历...")) {
final SelefDefFileChooser jfc = new SelefDefFileChooser(new File("E://Resume Files"));
//add Filters
String htmlExts[] = { "html", "htm" };
// construct it giving it an array of file
// extensions and a description string
FileFilter filter = new GenericFileFilter(htmlExts);
jfc.addChoosableFileFilter(filter);
jfc.setDialogType(JFileChooser.OPEN_DIALOG);
int state = jfc.showOpenDialog(null);
if (state == JFileChooser.APPROVE_OPTION) {
File resumeFile = jfc.getSelectedFile();
try {
String fName = resumeFile.toURI().toURL().toString();//注意要转换为URL形式
final JFrame jPopFrame = new JFrame("简历:" + fName);
JPanel jExitPanel = new JPanel();
jPopFrame.getContentPane()
.setLayout(new BorderLayout(5,10));
jPopFrame.setBounds(100, 200, 900, 700);
JButton exitButton = new JButton("退 出");
exitButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jPopFrame.dispose();
}
});
final JEditorPane editorPane = new JEditorPane();
editorPane.setEditable(false);
editorPane.setPage(fName);
JScrollPane scrollPane1 = new JScrollPane(editorPane);
jExitPanel.add(exitButton);
jPopFrame.add(scrollPane1, BorderLayout.CENTER);
jPopFrame.add(jExitPanel, BorderLayout.SOUTH);
//jPopFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jPopFrame.validate();
jPopFrame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "打开文件出错!", "出错",
JOptionPane.ERROR_MESSAGE);
}
}
} else if (evt.getActionCommand().equals("退出")) {
if (JOptionPane.showConfirmDialog(this, "您确定要退出吗?", "提示",
JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
System.exit(0);
}
} else if (evt.getActionCommand().equals("关于...")) {
final JFrame frame = new JFrame();
frame.setLayout(new BorderLayout(2, 2));
frame.setTitle("关于 简历自动下载器");
frame.setBounds(200, 150, 350, 350);
JPanel jInfoPanel=new JPanel();
jInfoPanel.setLayout(new BorderLayout(2, 2));
JLabel jMesg = new JLabel(
"<html><p align=center><b>简历自动下载器<B>Version 1.0 </p><br> <p align=center >作者 ql 日期 2007.11</p></html>",
JLabel.CENTER);
jMesg.setFont(new Font("宋体", Font.PLAIN, 15));
ImageIcon icon=new ImageIcon(System.getProperty("user.dir")+"/img/logo.jpg");//user.dir当前工作目录
JLabel jLogo=new JLabel(icon,JLabel.CENTER);
jInfoPanel.add(jLogo, BorderLayout.SOUTH);
jInfoPanel.add(jMesg, BorderLayout.CENTER);
frame.add(jInfoPanel, BorderLayout.CENTER);
JButton exitButton=new JButton("确 定");
exitButton.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
frame.dispose();
}
});
JPanel jExitPanel=new JPanel();
jExitPanel.add(exitButton);
frame.add(jExitPanel, BorderLayout.SOUTH);
frame.setVisible(true);
frame.setResizable(false);
}
else
{
if (evt.getActionCommand().equals("说明")) {
try {
//System.out.println(System.getProperty("user.dir"));//C:/Program
// Files/IBM/Rational/SDP/6.0
Runtime rt = Runtime.getRuntime(); //Time and Date.
rt.exec("notepad "+System.getProperty("user.dir")+"/img/note.txt");
} catch (Exception e1) {
e1.printStackTrace();
JOptionPane.showMessageDialog(null, "打开文件出错!", "出错",
JOptionPane.ERROR_MESSAGE);
}
}
}
}
}


被折叠的 条评论
为什么被折叠?



