Hyperlinklistener无法连接

时间:2017-04-12 01:19:19

标签: java swing class jeditorpane

当我尝试将一个超链接器添加到JEditorPane时,我不断收到此消息“无法访问WebBrowser类型的封闭实例。必须使用WebBrowser类型的封闭实例来限定分配(例如,xx是A(),其中x是WebBrowser的实例。“

JEditorPane webPageFrame = new JEditorPane(website);
        webPageFrame.setEditable(false);
        webPageFrame.addHyperlinkListener(new hylinks());
        browserFrame.add(webPageFrame, BorderLayout.NORTH);

public class hylinks实现了HyperlinkListener {

public void hyperlinkUpdate(HyperlinkEvent e) {
    System.out.println("test");

}

}`

完整代码

package myBrow;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.InputStreamReader;
import java.net.URL;
import java.security.cert.Certificate;
import java.util.Scanner;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLPeerUnverifiedException;

public class WebBrowser implements HyperlinkListener {
    public static void main(String[] args) {
        String webAdress = "http://www.gamestop.com";
        JTextField webAddressBar;
        JButton go;

        try {
            URL website = new URL(webAdress);

            InputStreamReader reader = new InputStreamReader(website.openStream());
            Scanner webStream = new Scanner(reader);

            String s = "";
            while (webStream.hasNextLine()) {
                String temp = webStream.nextLine();
                s = s + temp;
            }

            String heading = s.substring(s.indexOf("<title>") + 7, s.indexOf("</title>"));

            System.out.println(s);
            JFrame browserFrame = new JFrame(heading);
            browserFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            browserFrame.setLayout(new BorderLayout());

            JEditorPane webPageFrame = new JEditorPane(website);
            webPageFrame.setEditable(false);
            webPageFrame.addHyperlinkListener(new hylinks());
            browserFrame.add(webPageFrame, BorderLayout.NORTH);

            JPanel surfBar = new JPanel();
            surfBar.setLayout(new FlowLayout());
            webAddressBar = new JTextField("Enter Web Address");
            go = new JButton("GO");
            go.addActionListener(new buttons());
            surfBar.add(webAddressBar);
            surfBar.add(go);
            browserFrame.setSize(600, 600);
            JScrollPane jsp = new JScrollPane(webPageFrame);
            browserFrame.setVisible(true);
            browserFrame.add(jsp);
            browserFrame.add(surfBar, BorderLayout.NORTH);

        } catch (Exception ex) {
            System.out.println("error occured");
        }

    }

    public class hylinks implements HyperlinkListener {

        public void hyperlinkUpdate(HyperlinkEvent e) {
            System.out.println("test");

        }
    }

    public class buttons implements ActionListener {

        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub

        }
    }

}

0 个答案:

没有答案