仿照IE浏览器,设计一简单的网站访问程序
主窗口
import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JLabel; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.Font; import javax.swing.JTextField; import javax.swing.JButton; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.ScrollPaneConstants; import javax.swing.AbstractAction; import java.awt.event.ActionEvent; import javax.swing.Action; import java.awt.event.ActionListener; import java.io.IOException; public class frame { private JFrame frame; private JTextField textField; private final JButton button_1 = new JButton("保存代码"); /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { frame window = new frame(); window.frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the application. */ public frame() { initialize(); } /** * Initialize the contents of the frame. */ private void initialize() { frame = new JFrame(); frame.setResizable(false); frame.setTitle("测试"); frame.setBounds(200, 300, 600, 500); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().setLayout(null); JLabel lblUrl = new JLabel("URL:"); lblUrl.setFont(new Font("Lucida Grande", Font.PLAIN, 15)); lblUrl.setBounds(6, 6, 37, 16); frame.getContentPane().add(lblUrl); textField = new JTextField(); textField.setBounds(45, 2, 342, 26); frame.getContentPane().add(textField); textField.setColumns(10); JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(6, 34, 588, 438); frame.getContentPane().add(scrollPane); JTextArea textArea = new JTextArea(); scrollPane.setViewportView(textArea); JButton btnNewButton = new JButton("获取代码"); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { new getSource(textField.getText(),textArea); } }); button_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { new Save(textArea); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }); button_1.setBounds(450, 3, 78, 26); frame.getContentPane().add(button_1); btnNewButton.setBounds(381, 2, 78, 29); frame.getContentPane().add(btnNewButton); JButton btnNewButton_1 = new JButton("保存图片"); btnNewButton_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { new SavePicture(textField); } }); btnNewButton_1.setBounds(522, 2, 78, 29); frame.getContentPane().add(btnNewButton_1); } }
获取源代码
import java.net.*; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JTextArea; import java.io.*; public class getSource { private String url; private JTextArea area; public getSource(String url,JTextArea area) { this.url = url; this.area = area; URL(); } public void URL() { try { //打开HttpURLConnection进行读取 URL u = new URL(url); HttpURLConnection con = (HttpURLConnection)u.openConnection(); InputStream raw = con.getInputStream(); InputStream buffer = new BufferedInputStream(raw);//添加数据缓冲流 Reader reader = new InputStreamReader(buffer);//读取缓冲流中的数据 int c; String source =""; while((c=reader.read())!=-1) { source+=(char)c; } reader.close();//关闭流 area.setText(source); JOptionPane.showMessageDialog(null,"获取源代码成功!"); }catch(Exception e){ e.printStackTrace(); } } }
保存代码
import javax.swing.JOptionPane; import javax.swing.JTextArea; import java.io.*; public class Save { private JTextArea area; public Save(JTextArea area) throws IOException { this.area = area; String source = area.getText(); File file = new File("D:\\index.html");//创建文件 if(!file.exists())//文件不存在 { file.createNewFile(); } FileWriter writer = new FileWriter(file); BufferedWriter bufw = new BufferedWriter(writer); bufw.write(source); bufw.close(); writer.close(); JOptionPane.showMessageDialog(null, "保存代码成功"); } }保存图片
import java.io.*; import java.net.URL; import javax.swing.JOptionPane; import javax.swing.JTextField; public class SavePicture { public SavePicture(JTextField field) { String source = field.getText(); try { URL url=new URL(source);//图片地址 InputStream is=url.openStream();//打开网址 File image=new File("D:\\pic8.jpg");//创建文件 if(!image.exists()) { image.createNewFile(); } FileOutputStream fos=new FileOutputStream(image);//输出流 byte[] b=new byte[2048];//需为2的倍数 int n=is.read(b);//读取字节的个数,每次读2048个字节 while(n!=-1){//-1表示读完 // fos.write(b1);//写入所有字节流 fos.write(b,0,n);//第0个字节开始,写入n个字节 n=is.read(b); } //弹出提示框 JOptionPane.showMessageDialog(null, "图片保存成功"); //关闭流 is.close(); fos.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }