1 package hhuarongdao;
2 /*
3 *使用方法: 先选择保存路径,然后输入相应的网址,
4 *然后会得到那个网页的离线版的 内容
5 * */
6 import java.awt.BorderLayout;
7 import java.awt.Container;
8 import java.awt.FlowLayout;
9 import java.awt.Font;
10 import java.awt.event.ActionEvent;
11 import java.awt.event.ActionListener;
12 import java.io.File;
13 import java.io.FileNotFoundException;
14 import java.io.FileOutputStream;
15 import java.io.IOException;
16 import java.io.InputStream;
17 import java.io.OutputStream;
18 import java.net.MalformedURLException;
19 import java.net.URL;
20 import java.util.Scanner;
21 import javax.swing.ImageIcon;
22 import javax.swing.JButton;
23 import javax.swing.JFileChooser;
24 import javax.swing.JFrame;
25 import javax.swing.JLabel;
26 import javax.swing.JOptionPane;
27 import javax.swing.JPanel;
28 import javax.swing.JTextField;
29
30 public class stu {
31 public static void main(String args []){
32 setBjing mybe= new setBjing();
33 }
34 }
35
36 class mywndow extends JFrame
37 {
38 mywndow(String title){
39 setTitle(title);
40 setBounds(200,100 ,400,300);
41 this.setResizable(false);
42 }
43 }
44 //设置一个背景
45 class setBjing implements ActionListener
46 {
47 URL url;
48 look it=new look();
49 Thread readurl;
50 Container com;
51 JButton button,button1 ;
52 JTextField text,mytext ;
53 setBjing(){
54 mywndow hehe =new mywndow("离线网页制作器1.bate");
55 com=hehe.getContentPane();
56 com.setLayout(new FlowLayout());
57 mytext =new JTextField(20);
58 mytext.setEditable(false); //设置成为不能
59 mytext.setFont(new Font("Arial",Font.BOLD,22));
60 button1 = new JButton("选择路径");
61 button1.addActionListener(this);
62 button = new JButton("Submitt");
63 button.addActionListener(this);
64 text = new JTextField(20);
65 text.addActionListener(this);
66 JLabel label = new JLabel("输入网址,如:http://www.baidu.com");
67 com.add(label);
68 com.add(text);
69 com.add(button);
70 com.add(button1);
71 com.add(mytext);
72 hehe.setVisible(true);
73 hehe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
74 //text.setText("输入网址,例如:http://www.baidu.com");
75 }
76 public void work(String ss){
77 try {
78 url = new URL(ss);
79 it.setURL(url);
80 readurl = new Thread(it);
81 readurl.start();
82 }
83 catch (Exception exp)
84 {
85 // TODO Auto-generated catch block
86 JOptionPane.showMessageDialog(text,exp,"离线网页制作器1.bate",JOptionPane.ERROR_MESSAGE);
87 }
88 }
89 @Override
90 public void actionPerformed(ActionEvent e) {
91 // TODO Auto-generated method stub
92 if(e.getSource()==button){
93 String ss=text.getText().toString().trim();
94 work(ss);
95 text.setText(null);
96 }
97 else if(e.getSource()==button1){
98 JFileChooser chooser = new JFileChooser();
99 chooser.setCurrentDirectory(new File("D:/")); //默认路径为D盘
100 chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);//文件选择模式,只读
101 int index = chooser.showDialog(null, "确定");
102 if(index==chooser.APPROVE_OPTION){
103 it.setPath(chooser.getSelectedFile().getAbsolutePath());
104 mytext.setText(chooser.getSelectedFile().getAbsolutePath().toString());
105 //validate();
106 }
107 }
108 }
109 }
110 class look implements Runnable
111 {
112 URL url;
113 public File fwrite = new File("url.html");
114 void setPath(String road)
115 {
116 fwrite = new File(road+".html");
117 }
118 public void setURL(URL url){
119 this.url=url;
120 }
121 @Override
122 public void run() {
123 // TODO Auto-generated method stub
124 try{
125 OutputStream out = new FileOutputStream(fwrite,true);
126 InputStream in=url.openStream();
127 byte [] a=new byte [1024];
128 int n=-1;
129 while( (n=in.read(a))!=-1 ){
130 out.write(a, 0,n);
131 }
132 out.close();
133 JOptionPane.showMessageDialog(null,"保存成功!","离线网页制作器1.bate",JOptionPane.ERROR_MESSAGE);
134 }
135 catch(IOException e){
136 JOptionPane.showMessageDialog(null,"文件保存失败!","离线网页制作器1.bate",JOptionPane.ERROR_MESSAGE);
137 };
138 }
139 }