⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 htmldemo.java

📁 GUI代码,用与实现相关GUI的功能,如有需要即可自由下载!
💻 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 + -