0

当我将 getPage() 方法用于 JEditorPane 时,我遇到了问题,它无法正确显示网页并且不支持所有内容,这意味着我想显示所有内容,例如 chrome 和其他浏览器。这是我的代码

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class browser extends JFrame {
    private JTextField addressbar;
    private JEditorPane display;
    public browser(){
        super("web browser");
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(500,500);
        addressbar=new JTextField("Enter URL");
        addressbar.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent event){
                loadCrap(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){
                    loadCrap(event.getURL().toString());
                }
            }
        });

        add(new JScrollPane(display),BorderLayout.CENTER);
        setSize(500,500);
        setVisible(true);

    }
    private void loadCrap(String Address){
        try{
            display.setPage(Address);
            addressbar.setText(Address);
        } catch(Exception e){
            System.out.println("crap !");
        }
    }
    public static void main(String[] args){
        new browser();
    }

}
4

1 回答 1

0

您可以使用Desktop该类来显示网页。有关更多信息和工作示例,请参阅有关如何与桌面类集成的 Swing 教程。

于 2013-06-22T14:46:56.050 回答