📄 htmldemo.java
字号:
/*
* $Header$
* $Date$
* $Revision$
* Copyright (C) 2003-2004 CIC, Tsinghua Univ.
*/
package jcase.gui.swing;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.JEditorPane;
import javax.swing.JScrollPane;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLFrameHyperlinkEvent;
/**
* HtmlDemo
*/
public class HtmlDemo extends BaseSwingDemo {
JEditorPane html;
String title;
private static String homepage="http://www.cic.tsinghua.edu.cn";
/**
* @see jcase.gui.swing.BaseSwingDemo#init()
*/
protected void init() {
setLayout(new BorderLayout());
html = new JEditorPane();
html.setEditable(false);
html.addHyperlinkListener(createHyperLinkListener());
JScrollPane scroller = new JScrollPane(html);
add(scroller, BorderLayout.CENTER);
title="HtmlDemo";
}
/**
*
*/
public HtmlDemo() {
super();
try {
this.setPage(new URL(homepage));
} catch (MalformedURLException e) {
html.setText("Can not open "+homepage);
}
}
public HtmlDemo(URL url){
super();
this.setPage(url);
}
/**
* 此构造函数用来显示某个类的源代码,
* 要求在当前classpath下面有一个src的目录,
* 该目录存放了java2html生成的源代码的html文件。
*/
public HtmlDemo(String classname){
super();
URL url = getClass().getResource("/src/"+classname.replace('.','/')
+".java.html");
if(null==url){
html.setText("Can not find source for class '"+classname+"'");
}
else{
setPage(url);
}
setTitle(classname+" 源代码");
}
/**
* @see jcase.gui.swing.BaseSwingDemo#getTitle()
*/
public String getTitle() {
return title;
}
public void setTitle(String title){
this.title=title;
}
/**
* 处理页面中的超链接
* @return
*/
public HyperlinkListener createHyperLinkListener() {
return new HyperlinkListener() {
public void hyperlinkUpdate(HyperlinkEvent e) {
if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
if (e instanceof HTMLFrameHyperlinkEvent) {
((HTMLDocument)html.getDocument()).processHTMLFrameHyperlinkEvent(
(HTMLFrameHyperlinkEvent)e);
} else {
setPage(e.getURL());
}
}
}
};
}
/**
* 设置文档页面
* @param url
*/
public void setPage(URL url){
if(null==url){
html.setText("Please give me a non null url!");
return;
}
try {
html.setPage(url);
this.setTitle(url.toString()+"-HtmlDemo");
} catch (IOException ioe) {
System.out.println("IOE: " + ioe);
html.setText("Can't open page '"+url+"'\nIOE:"+ioe);
}
}
public static void main(String[] args){
HtmlDemo demo;
if(args.length>0){
demo = new HtmlDemo(args[0]);
}else{
demo = new HtmlDemo();
}
jcase.gui.DemoLauncher.swingDemo(demo);
}
/**
* @see java.awt.Component#getPreferredSize()
*/
public Dimension getPreferredSize() {
return new Dimension(800,600);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -