用java做一个简易浏览器

2025-02-26 21:27:39
推荐回答(1个)
回答1:

import java.awt.*; 
import java.awt.event.*; 
import java.io.IOException; 
import java.net.*; 
import javax.swing.*; 
import javax.swing.event.HyperlinkEvent; 
import javax.swing.event.HyperlinkListener; 

public class HTTPBrowserDemo extends JFrame { 
        private JLabel jlAddress,jlInfo; 
        private JTextField jtfAddress; 
        private JEditorPane jtpShow; 
        private JPanel panel; 
        private JButton btnGO; 
         
        public static void main(String[] args) { 
                HTTPBrowserDemo hbd=new HTTPBrowserDemo(); 
        } 
        HTTPBrowserDemo(){ 
                 
                jlAddress=new JLabel("地址"); 
                jlInfo=new JLabel(); 
                jtpShow=new JEditorPane(); 
                panel=new JPanel(); 
                jtfAddress=new JTextField(20); 
                btnGO=new JButton("转到"); 
                 
                add(panel,BorderLayout.NORTH); 
                add(jtpShow,BorderLayout.CENTER); 
                add(jlInfo,BorderLayout.SOUTH); 
                 
                panel.add(jlAddress); 
                panel.add(jtfAddress); 
                panel.add(btnGO); 
                 
                setVisible(true); 
                setSize(350, 280); 
                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
                 
                btnGO.addActionListener(new ShowHTMLListener()); 
     jtpShow.setEditable(false); 
                jtpShow.addHyperlinkListener(new MyHyperlinkListener()); 
        } 
        class ShowHTMLListener implements ActionListener{ 
                public void actionPerformed(ActionEvent e){ 
                        String str=jtfAddress.getText(); 
                        try { 
                                if (!str.startsWith("http://")){ 
                                        str="http://"+str; 
                                } 
                                jlInfo.setText("连接中..."); 
                                URL address=new URL(str); 
                                jtpShow.setPage(address); 
                                jlInfo.setText("完成"); 
                        } catch (MalformedURLException e1) { 
                                // TODO Auto-generated catch block 
                                e1.printStackTrace(); 
                        } catch (IOException e2) { 
                                // TODO: handle exception 
                        } 
                } 
        } 
        class MyHyperlinkListener implements HyperlinkListener{ 
                public void hyperlinkUpdate(HyperlinkEvent e) { 
                        if(e.getEventType()==HyperlinkEvent.EventType.ACTIVATED){ 
                                JEditorPane pane=(JEditorPane)e.getSource(); 
                                try { 
                                        pane.setPage(e.getURL()); 
                                } catch (IOException e1) { 
                                        // TODO Auto-generated catch block 
                                        e1.printStackTrace(); 
                                } 
                        } 
                }         
        } 
}