java swing浏览器_Swing 简单的WEB浏览器

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-28 11:43   526   0

import java.io.IOException;

import javax.swing.JEditorPane;

import javax.swing.event.HyperlinkEvent;

import javax.swing.event.HyperlinkListener;

/**

* 处理超链接

* @author Vic

*

*/

public class LinkFollower implements HyperlinkListener{

private JEditorPane pane;

public LinkFollower(JEditorPane pane){

this.pane = pane;

}

public void hyperlinkUpdate(HyperlinkEvent evt) {

if(evt.getEventType() == HyperlinkEvent.EventType.ACTIVATED){

try {

pane.setPage(evt.getURL());

} catch (IOException e) {

pane.setText("could not load "+evt.getURL()+"");

}

}

}

}

import java.awt.EventQueue;

import java.awt.Frame;

import java.io.IOException;

import javax.swing.JEditorPane;

import javax.swing.JFrame;

import javax.swing.JScrollPane;

import javax.swing.WindowConstants;

/**

* 简单的Web浏览器

* @author Vic

*

*/

public class SimpleWebBrowser {

public static void main(String[] args) {

String initialPage = "http://www.cafeaulait.org/";

JEditorPane jep = new JEditorPane();

jep.setEditable(false);

jep.addHyperlinkListener(new LinkFollower(jep));

try {

jep.setPage(initialPage);

} catch (IOException e) {

System.err.println("Usage: java simpleWebBrowser url");

System.err.println(e);

System.exit(1);

}

JScrollPane scrollPane = new JScrollPane(jep);

JFrame f = new JFrame("Simple Web Browser");

f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

f.setContentPane(scrollPane);

f.setSize(512,342);

EventQueue.invokeLater(new FrameShower(f));

}

private static class FrameShower implements Runnable{

private final Frame frame ;

public FrameShower(Frame frame){

this.frame = frame;

}

public void run() {

frame.setVisible(true);

}

}

}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP