超链接事件类型激活的错误

超链接事件类型激活的错误

我正在尝试创建一个简单的Web浏览器,但是当我运行它并将其悬停在URL上时,即使我给出了event.getEventType()==HyperlinkEvent.EventType.ACTIVATED,URL也会运行
为什么表现得像event.getEventType()==HyperlinkEvent.EventType.ENTERED

这是完整的代码

package gui;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.*;
import java.awt.event.*;
public class WebBrowser extends JFrame{
private JTextField addressbar;
private JEditorPane display;
public WebBrowser(){
    super("Sagar Browser");
    addressbar = new JTextField("Enter a URL");
    addressbar.addActionListener(
            new ActionListener(){
                public void actionPerformed(ActionEvent event){
                    load(event.getActionCommand());
                }
            }
            );
    add(addressbar,BorderLayout.NORTH);
    display = new JEditorPane();
    display.setEditable(false);
    display.addHyperlinkListener(
            new HyperlinkListener(){
                public void hyperlinkUpdate(HyperlinkEvent event){
                    if(event.getEventType()==HyperlinkEvent.EventType.ACTIVATED);
                    load(event.getURL().toString());
                }
            }
            );
    add(new JScrollPane(display),BorderLayout.CENTER);
  }
private void load(String usertext){
    try{
        display.setPage(usertext);
        addressbar.setText(usertext);
    }catch(Exception e){
        System.out.println("Enter Full URL");
    }
}
public static void main(String[] args){
    WebBrowser w = new WebBrowser();
    w.setSize(500,500);
    w.setVisible(true);
}
}

最佳答案

您的听众将忽略相关谓词。您可能是这个意思:

new HyperlinkListener(){
    public void hyperlinkUpdate(HyperlinkEvent event){
        if(event.getEventType()==HyperlinkEvent.EventType.ACTIVATED) {
            load(event.getURL().toString());
        }
    }
}


相关示例被检查herehere

关于java - 超链接事件类型激活的错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25442584/

10-11 18:16