当前位置: 代码迷 >> J2SE >> 依照书上敲了个简单实现WebBrowser的代码,运行结果,网站总是在变化
  详细解决方案

依照书上敲了个简单实现WebBrowser的代码,运行结果,网站总是在变化

热度:75   发布时间:2016-04-24 00:42:08.0
按照书上敲了个简单实现WebBrowser的代码,运行结果,网站总是在变化
代码如下
Java code
package ex30;import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.net.URL;import javax.swing.event.*;import java.io.*;public class WebBrowser extends JApplet{    // JEditor pane to view HTML files    private JEditorPane jep = new JEditorPane();        // Label for URL    private JLabel jlblURL = new JLabel("URL");        // Text field for entering URL    private JTextField jtfURL = new JTextField();        /** Initialize the applet */    public void init(){        // Create a panel jpURL to hold the label and text field        JPanel jpURL = new JPanel();        jpURL.setLayout(new BorderLayout());        jpURL.add(jlblURL, BorderLayout.WEST);        jpURL.add(jtfURL, BorderLayout.CENTER);                // Place jpURL and jspViewer in the applet        add(new JScrollPane(jep), BorderLayout.CENTER);        add(jpURL, BorderLayout.NORTH);                // Set jep noneditable        jep.setEditable(false);                // Register listener        jep.addHyperlinkListener(new HyperlinkListener(){            public void hyperlinkUpdate(HyperlinkEvent e){                try{                    jep.setPage(e.getURL());                }                catch(IOException ex){                    System.out.println(ex);                }            }        });        jtfURL.addActionListener(new ActionListener(){            public void actionPerformed(ActionEvent e){                try{                    // Get the URL from text field                    URL url = new URL(jtfURL.getText().trim());                                        // Display the HTML file                    jep.setPage(url);                }                catch(IOException ex){                    System.out.println(ex);                }            }        });    }}

进入程序后,我输入http://www.hao123.com
开始的时候能显示hao123的界面出来,后面不一会儿就变化,好像一直在刷新,而且也不再是原来的网站
求高手解释一下这是为什么

------解决方案--------------------
其实不是一直在刷新,是你的鼠标移动到了一个链接,这个事件被抓到后,执行了ActionPerformed方法。
HyperlinkEvent e
HyperlinkEvent有3中类型

static HyperlinkEvent.EventType ACTIVATED 
激活类型。 
static HyperlinkEvent.EventType ENTERED 
进入类型。 (就是你鼠标移动到一个链接后的类型)
static HyperlinkEvent.EventType EXITED 
退出类型。 
在 jep.setPage(e.getURL());上加一条判断语句
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
  相关解决方案