由于项目的需要要根据类来生成javadoc但是还不能用javadoc命令,所以就在qdox的基础上写了这个功能。 package com.highcom.hcgip.javadoc;
import java.io.*; import com.highcom.hcgip.basic.common.*; import com.highcom.hcgip.cm.model.*; import com.thoughtworks.qdox.model.*; import java.util.*; import com.highcom.hcgip.cm.util.*;
public class JavaDocCreater { private HtmlWriter htmlWriter = null; private JavaDoc javaDoc = null; /** * 生成javadoc函数 * @param path javadoc存放的路径 * @param filename javadoc文件名 * @param docencoding 编码格式 * @param classFileName .java文件包含路径 * @throws IOException * @throws UnsupportedEncodingException */ public void genJavaDoc(String path, String filename, String docencoding, String classFileName, JavaDocBean javaDocBean) throws IOException, UnsupportedEncodingException, JavaDocException { htmlWriter = new HtmlWriter(path, filename, docencoding); if ( (new File(classFileName)).exists()) { javaDoc = new JavaDoc(new File(classFileName)); excute(javaDocBean,filename); } else throw new JavaDocException("the classFile(" + classFileName + ") is not existed!"); htmlWriter.close(); }
private void excute(JavaDocBean javaDocBean,String filename) { htmlWriter.println("<SCRIPT LANGUAGE='JavaScript'><!--"); htmlWriter.println("function src(){"); htmlWriter.println("document.javadocsrc.submit();}"); htmlWriter.println("function example(){"); htmlWriter.println("document.javadocexample.submit();}//--></SCRIPT>"); htmlWriter.printPartialHeader(javaDoc.getClassName()); htmlWriter.print("<BODY BGCOLOR='white'>"); htmlWriter.println("<table border='0' width='100%' cellpadding='1' cellspacing='0'><tr><td colspan=3 bgcolor='#EEEEFF' class='NavBarCell1'>"); htmlWriter.println( "<form name ='javadocsrc' action ='/download' method='post'>"); htmlWriter.println("<input type ='hidden' name='filename' "); htmlWriter.println("value='" + OppositePath.getSolidusPath(javaDocBean.getSrcpath()) + "'>"); htmlWriter.println("</form>"); htmlWriter.println( "<form name ='javadocexample' action ='/download' method='post'>"); htmlWriter.println("<input type ='hidden' name='filename' "); htmlWriter.println("value='" + OppositePath.getSolidusPath(javaDocBean.getExamplepath()) + "'>"); htmlWriter.println("</form>"); htmlWriter.p(); htmlWriter.print("原代码下载:"); htmlWriter.print(htmlWriter.getHyperLink("javascript:src();", "", "下载", true, "")); htmlWriter.printNbsps(4); htmlWriter.print("示例下载:"); if (javaDocBean.getExamplepath() != null && !javaDocBean.getExamplepath().equals("")) htmlWriter.print(htmlWriter.getHyperLink("javascript:example();", "", "下载", true, "")); else htmlWriter.print(htmlWriter.getHyperLink("#", "", "下载", true, "")); htmlWriter.printNbsps(4); htmlWriter.print(htmlWriter.getHyperLink("/controller?parentid="+javaDocBean.getId()+"&requestType=propositioncommand&subRequestType=getMessage", "", "意见或建议", true, ""));
htmlWriter.pEnd(); htmlWriter.p(); htmlWriter.print("依赖关系:"); htmlWriter.print(javaDocBean.getDepend()); // htmlWriter.pEnd(); htmlWriter.print("</td></tr></table>"); htmlWriter.hr(); htmlWriter.println("<H2><FONT SIZE='-1'>"); htmlWriter.print(javaDoc.getPackage()); htmlWriter.print("</FONT>"); htmlWriter.br(); if (!javaDoc.isInterface()) { htmlWriter.print("Class "); } else { htmlWriter.print("Interface "); } htmlWriter.println(javaDoc.getClassName()); htmlWriter.print("</H2>"); htmlWriter.println("<PRE>"); htmlWriter.println(javaDoc.getSuperClass()); htmlWriter.println(" |"); htmlWriter.print(" +--"); htmlWriter.bold(); htmlWriter.print(javaDoc.getFullClassName()); htmlWriter.boldEnd(); htmlWriter.println("</PRE>"); htmlWriter.hr(); htmlWriter.br(); if (javaDoc.getClassComment() != null) { htmlWriter.println(javaDoc.getFullClassName()); htmlWriter.println(javaDoc.getClassComment()); } DocletTag[] doclet = javaDoc.getClassTags(); for (int i = 0; i < doclet.length; i++) { htmlWriter.p(); htmlWriter.bold(); htmlWriter.print(doclet[i].getName() + ": "); htmlWriter.boldEnd(); htmlWriter.print(doclet[i].getValue()); htmlWriter.pEnd(); } if (javaDoc.getClassComment() != null) htmlWriter.hr(); htmlWriter.p(); //////////成员变量 Vector it = new Vector(); FieldBean fieldBean = new FieldBean(); it = javaDoc.getFieldInfo(); if (it != null && it.size() > 0) { htmlWriter.println("<TABLE BORDER='1' CELLPADDING='3' CELLSPACING='0' WIDTH='100%'><TR BGCOLOR='#CCCCFF' CLASS='TableHeadingColor'><TD COLSPAN=2><FONT SIZE='+2'><B>Field Summary</B></FONT></TD></TR>"); for (int i = 0; i < it.size(); i++) { fieldBean = (FieldBean) it.get(i); htmlWriter.print("<TR BGCOLOR='white' CLASS='TableRowColor'><TD ALIGN='right' VALIGN='top' WIDTH='32%'><FONT SIZE='-1'><CODE>"); htmlWriter.print(fieldBean.getType()); htmlWriter.print("</CODE></FONT></TD>"); htmlWriter.print("<TD width='68%'><CODE>"); htmlWriter.print(htmlWriter.getHyperLink(filename, fieldBean.getName(), fieldBean.getName(), true, "")); htmlWriter.print("</CODE>"); htmlWriter.br(); htmlWriter.printNbsps(10); htmlWriter.print(fieldBean.getComment() == null ? "" : fieldBean.getComment()); htmlWriter.print("</TD></TR>"); } htmlWriter.print("</TABLE>"); htmlWriter.br(); } ///////////////构造函数 it = javaDoc.getConstructor(); MethodBean methodBean = new MethodBean(); if (it != null && it.size() > 0) { htmlWriter.println("<TABLE BORDER='1' CELLPADDING='3' CELLSPACING='0' WIDTH='100%'><TR BGCOLOR='#CCCCFF' CLASS='TableHeadingColor'><TD COLSPAN=2><FONT SIZE='+2'><B>Constructor Summary</B></FONT></TD></TR>"); for (int j = 0; j < it.size(); j++) { methodBean = (MethodBean) it.get(j); htmlWriter.print( "<TR BGCOLOR='white' CLASS='TableRowColor'><TD><CODE><B>"); String temp = methodBean.getParameter(); if (temp == null || temp.equals("null")) temp = ""; //temp = ln(temp); htmlWriter.print(htmlWriter.getHyperLink(filename, methodBean.getName() + "(" + temp + ")", methodBean.getName() + "(" + temp + ")", true, "")); htmlWriter.br(); htmlWriter.printNbsps(10); htmlWriter.print(methodBean.getComment() == null ? "" : methodBean.getComment()); } htmlWriter.println("</TD></TR></TABLE>"); htmlWriter.br(); } //////////////////////////////// //成员函数 it = javaDoc.getMethodInfo(); MethodBean methodBean1 = new MethodBean(); if (it != null && it.size() > 0) { htmlWriter.println("<TABLE BORDER='1' CELLPADDING='3' CELLSPACING='0' WIDTH='100%'><TR BGCOLOR='#CCCCFF' CLASS='TableHeadingColor'><TD COLSPAN=2><FONT SIZE='+2'><B>Method Summary</B></FONT></TD></TR>"); for (int k = 0; k < it.size(); k++) { methodBean1 = (MethodBean) it.get(k); htmlWriter.print( "<TR BGCOLOR='white' CLASS='TableRowColor'><TD ALIGN='right' VALIGN='top' WIDTH='32%'><FONT SIZE='-1'><CODE>"); htmlWriter.printNbsps(1); htmlWriter.print(methodBean1.getType()); htmlWriter.print("</CODE></FONT></TD>"); htmlWriter.print("<TD><CODE>"); String temp1 = methodBean1.getParameter(); if (temp1 == null || temp1.equals("null")) temp1 = ""; //temp1 = ln(temp1); htmlWriter.print(htmlWriter.getHyperLink(filename, methodBean1.getName() + "(" + temp1 + ")", methodBean1.getName() + "(" + temp1 + ")", true, "")); htmlWriter.println("</CODE>"); htmlWriter.br(); htmlWriter.printNbsps(10); htmlWriter.print(methodBean1.getComment() == null ? "" : methodBean1.getComment()); htmlWriter.println("</TD></TR>"); } htmlWriter.println("</TABLE>"); htmlWriter.br(); } ////////////////// //成员变量的详细信息 it = new Vector(); FieldBean fieldBean1 = new FieldBean(); it = javaDoc.getFieldInfo(); if (it != null && it.size() > 0) { htmlWriter.println("<TABLE BORDER='1' CELLPADDING='3' CELLSPACING='0' WIDTH='100%'><TR BGCOLOR='#CCCCFF' CLASS='TableHeadingColor'><TD COLSPAN=1><FONT SIZE='+2'><B>Field Detail</B></FONT></TD></TR></TABLE>"); for (int q = 0; q < it.size(); q++) { fieldBean1 = (FieldBean) it.get(q); htmlWriter.print("<A name=" + fieldBean1.getName() + "><!-- --></A>"); htmlWriter.print("<H3>"); htmlWriter.print(fieldBean1.getName()); htmlWriter.print("</H3>"); htmlWriter.print("<PRE>"); htmlWriter.print(fieldBean1.getType()); htmlWriter.printNbsps(2); htmlWriter.bold(); htmlWriter.print(fieldBean1.getName()); htmlWriter.boldEnd(); htmlWriter.print("</PRE>"); htmlWriter.println("<DL>"); htmlWriter.print("<DD>"); htmlWriter.print(fieldBean1.getComment() == null ? "" : fieldBean1.getComment()); htmlWriter.println("<P><DL></DL></DD></DL>"); htmlWriter.hr(); } } ///////////////构造函数详细信息 it = javaDoc.getConstructor(); MethodBean methodBean2 = new MethodBean(); if (it != null && it.size() > 0) { htmlWriter.println("<TABLE cellSpacing=0 cellPadding=3 width='100%' border=1><TBODY><TR class=TableHeadingColor bgColor=#ccccff><TD><FONT size=+2><B>Constructor Detail</B></FONT></TD></TR></TBODY></TABLE>"); for (int a = 0; a < it.size(); a++) { methodBean2 = (MethodBean) it.get(a); String temp = methodBean2.getParameter(); if (temp == null || temp.equals("null")) temp = ""; String nontemp = temp; temp = ln(temp); htmlWriter.print("<A name=" + methodBean2.getName() + "(" + nontemp + ")" + "><!-- --></A>"); htmlWriter.print("<H3>"); htmlWriter.print(methodBean2.getName()); htmlWriter.print("</H3>"); htmlWriter.print("<PRE>"); htmlWriter.print(methodBean2.getType() == null ? "public" : methodBean2.getType()); htmlWriter.printNbsps(2); htmlWriter.bold(); htmlWriter.print(methodBean2.getName() + "(" + temp + ")"); htmlWriter.boldEnd(); htmlWriter.print("</PRE>"); htmlWriter.println("<DL>"); htmlWriter.print("<DD>"); htmlWriter.print(methodBean2.getComment() == null ? "" : methodBean2.getComment()); htmlWriter.println("<P>"); htmlWriter.println("<DT><B>Parameters:</B>"); DocletTag[] doclettag = methodBean2.getTag(); for (int i = 0; i < doclettag.length; i++) { htmlWriter.print("<DD><CODE>" + doclettag[i].getName() + "</CODE> - " + doclettag[i].getValue()); } htmlWriter.print("</DL>"); htmlWriter.hr(); } }
///////////////成员函数详细信息 it = javaDoc.getMethodInfo(); MethodBean methodBean3 = new MethodBean(); if (it != null && it.size() > 0) { htmlWriter.println("<TABLE cellSpacing=0 cellPadding=3 width='100%' border=1><TBODY><TR class=TableHeadingColor bgColor=#ccccff><TD><FONT size=+2><B>Method Detail</B></FONT></TD></TR></TBODY></TABLE>"); for (int a = 0; a < it.size(); a++) { methodBean3 = (MethodBean) it.get(a); String temp = methodBean3.getParameter(); if (temp == null || temp.equals("null")) temp = ""; String nontemp = temp; temp = ln(temp); htmlWriter.print("<A name=" + methodBean3.getName() + "(" + nontemp + ")" + "><!-- --></A>"); htmlWriter.print("<H3>"); htmlWriter.print(methodBean3.getName()); htmlWriter.print("</H3>"); htmlWriter.print("<PRE>"); htmlWriter.print(methodBean3.getType() == null ? "public" : methodBean3.getType()); htmlWriter.printNbsps(2); htmlWriter.bold(); htmlWriter.print(methodBean3.getName() + "(" + temp + ")"); htmlWriter.boldEnd(); htmlWriter.print("</PRE>"); htmlWriter.println("<DL>"); htmlWriter.print("<DD>"); htmlWriter.print(methodBean3.getComment() == null ? "" : methodBean3.getComment()); htmlWriter.println("<P>"); htmlWriter.println("<DT><B>Parameters:</B>"); DocletTag[] doclettag = methodBean3.getTag(); for (int i = 0; i < doclettag.length; i++) { htmlWriter.print("<DD><CODE>" + doclettag[i].getName() + "</CODE> - " + doclettag[i].getValue()); } htmlWriter.print("</DL>"); htmlWriter.hr(); } } htmlWriter.println("<table border='0' width='100%' cellpadding='1' cellspacing='0'><tr><td colspan=3 bgcolor='#EEEEFF' class='NavBarCell1'>"); htmlWriter.p(); htmlWriter.print("原代码下载:"); htmlWriter.print(htmlWriter.getHyperLink("javascript:src();", "", "下载", true, "")); htmlWriter.printNbsps(4); htmlWriter.print("示例下载:"); if (javaDocBean.getExamplepath() != null && !javaDocBean.getExamplepath().equals("")) htmlWriter.print(htmlWriter.getHyperLink("javascript:example();", "", "下载", true, "")); else htmlWriter.print(htmlWriter.getHyperLink("#", "", "下载", true, "")); htmlWriter.printNbsps(4); htmlWriter.print(htmlWriter.getHyperLink("/controller?parentid="+javaDocBean.getId()+"&requestType=propositioncommand&subRequestType=getMessage", "", "意见或建议", true, ""));
htmlWriter.pEnd(); htmlWriter.p(); htmlWriter.print("依赖关系:"); htmlWriter.print(javaDocBean.getDepend()); // htmlWriter.pEnd(); htmlWriter.print("</td></tr></table>");
htmlWriter.hr(); htmlWriter.bodyEnd(); htmlWriter.htmlEnd(); }
private static String ln(String str) { StringTokenizer st = new StringTokenizer(str, ","); StringBuffer sb = new StringBuffer(); while (st.hasMoreTokens()) { sb.append(st.nextToken()); if (st.hasMoreTokens()) { sb.append(","); sb.append("\n"); } } str = sb.toString();
return str; }
public static void main(String[] atr) { JavaDocCreater javaDocCreater = new JavaDocCreater(); try { javaDocCreater.genJavaDoc("d:\\aa", "RequestHelper.html", "gb2312", "d:\\aa\\RequestHelper.java", null); } catch (Exception ex) { ex.printStackTrace(); }
} }
package com.highcom.hcgip.javadoc;
import java.io.*; import com.thoughtworks.qdox.*; import com.thoughtworks.qdox.model.*; import java.util.*;
public class JavaDoc { private File file; private JavaDocBuilder builder = null; private JavaSource src = null; private JavaClass cls[] = null; private JavaField[] jf = null; private JavaMethod[] jm = null; /** * 根据参数的不同生成不同的javasource * @param file 具体的文件 */ public JavaDoc(File file) { this.file = file; try { builder = new JavaDocBuilder(); this.src = builder.addSource(file); cls = src.getClasses(); jf = cls[0].getFields(); jm = cls[0].getMethods();
} catch (IOException ex) { ex.printStackTrace(); } }
/** * 获取包名 * @return */ public String getPackage() { return src.getPackage(); }
/** * 返回都包含什么类 * @return String数组 */ public String[] getImports() { return src.getImports(); }
/** * 获得完整类名 * @return */ public String getFullClassName() { return cls[0].getFullyQualifiedName(); }
/** * 只获得类名,不包含包名 * @return */ public String getClassName() { return cls[0].getName(); }
/** * 判断是否是接口 * @return */ public boolean isInterface() { return cls[0].isInterface(); }
/** * 判断是否是public * @return */ public boolean isClassPublic() { return cls[0].isPublic(); }
/** * 判断次类是不是Abstract * @return */ public boolean isCalssAbstract() { return cls[0].isAbstract(); }
public boolean isClassFinal() { return cls[0].isFinal(); }
/** * 获得超类 * @return */ public String getSuperClass() { return cls[0].getSuperClass().getValue(); }
/** * 获得类的注释 * @return */ public String getClassComment() { return cls[0].getComment(); }
public String[] getImplements() { String it[] = null; for (int i = 0; i < cls[0].getImplements().length; i++) { it[i] = cls[0].getImplements()[i].getValue(); } return it; }
/** * get DocletTags * @return */ public DocletTag[] getClassTags() { return cls[0].getTags(); }
/** * 获取定义的成员变量,只获取public 类型的 * @return 返回数值是数组类型的FieldBean */ public Vector getFieldInfo() { Vector it = new Vector(); String tmp = ""; for (int i = 0; i < jf.length; i++) { if (jf[i].isPublic()) { FieldBean fieldBean = new FieldBean(); tmp = "public "; if (jf[i].isStatic()) tmp += "static "; if (jf[i].isFinal()) tmp += "final "; if (jf[i].getType().isArray()) fieldBean.setType(tmp + jf[i].getType().getValue() + "[]"); else fieldBean.setType(tmp + jf[i].getType().getValue()); fieldBean.setName(jf[i].getName()); fieldBean.setComment(jf[i].getComment()); it.add(fieldBean); }
} return it; }
/** * 获取构造函数 * @return */ public Vector getConstructor() { Vector it = new Vector(); String tmp = ""; int l = 0; for (int i = 0; i < jm.length; i++) { if (jm[i].isConstructor()) { MethodBean methodBean = new MethodBean(); JavaParameter parmeter[] = jm[i].getParameters(); for (int j = 0; j < parmeter.length; j++) { l++; if (parmeter[j].getType().isArray()) tmp += parmeter[j].getType().getValue() + "[]"; else tmp += parmeter[j].getType().getValue(); tmp += " " + parmeter[j].getName(); if (parmeter.length > l) tmp += ","; } methodBean.setName(jm[i].getName()); methodBean.setParameter(tmp); tmp=""; l=0; methodBean.setComment(jm[i].getComment()); methodBean.setTag(jm[i].getTags()); it.add(methodBean); } } return it; }
/** * 获取成员函数 * @return */ public Vector getMethodInfo() { Vector it = new Vector(); String tmp = ""; String str = ""; int l = 0; for (int i = 0; i < jm.length; i++) { if (!jm[i].isConstructor()) { if (jm[i].isPublic() || jm[i].isProtected()) { if (jm[i].isAbstract()) str = "abstract "; if (jm[i].isStatic()) str += "static "; if (jm[i].isSynchronized()) str += "synchronized "; MethodBean methodBean = new MethodBean(); JavaParameter parmeter[] = jm[i].getParameters(); for (int j = 0; j < parmeter.length; j++) { l++; if (parmeter[j].getType().isArray()) tmp += parmeter[j].getType().getValue() + "[]"; else tmp += parmeter[j].getType().getValue(); tmp += " " + parmeter[j].getName(); if (parmeter.length > l) tmp += ","; } if (jm[i].isProtected()) { if (jm[i].getReturns().isArray()) methodBean.setType("protected " + str + jm[i].getReturns().getValue() + "[]"); else methodBean.setType("protected " + str + jm[i].getReturns().getValue()); } else { if (jm[i].getReturns().isArray()) methodBean.setType("public " + str + jm[i].getReturns().getValue() + "[]"); else methodBean.setType("public " + str + jm[i].getReturns().getValue());
} methodBean.setName(jm[i].getName()); methodBean.setParameter(tmp); tmp=""; str=""; l=0; methodBean.setComment(jm[i].getComment()); methodBean.setTag(jm[i].getTags()); it.add(methodBean); } } }
return it;
}
public static void main(String[] args) { File f = new File("D:\\ParamUtils.java"); JavaDoc j = new JavaDoc(f); Vector b = j.getMethodInfo(); for (int q = 0; q < b.size(); q++) { MethodBean mb = (MethodBean) b.get(q); p(mb.getType());p(" "); p(mb.getName());p(" ("); p(mb.getParameter()); pt(")"); // pt(mb.getComment()); } // DocletTag[] t = mb.getTag(); // for (int a = 0; a < t.length; a++) { // pt(t[a].getName()); // pt(t[a].getValue()); // } // } // Vector it = j.getFieldInfo(); // FieldBean a = null; // for (int i = 0; i < it.size(); i++) { // a = (FieldBean) it.get(i); // pt(a.getType()); // pt(a.getName()); // pt(a.getComment()); // } /* pt("PackageName:" + j.getPackage()); pt("ClassName:" + j.getClassName()); pt("ClassFullName:" + j.getFullClassName()); pt("superCalss:" + j.getSuperClass()); pt("ClassComment:" + j.getClassComment()); DocletTag[] d =j.getClassTags(); for(int i=0;i<d.length;i++) { pt("name:"+d[i].getName()); pt("value:"+d[i].getValue()); } */ }
static void pt(String str) { System.out.println(str); } static void p(String str) { System.out.print(str); }
}
package com.highcom.hcgip.javadoc; import java.io.*; import java.lang.*; import java.util.*;
public class HtmlWriter extends PrintWriter {
/** * Name of the file, to which this writer is writing to. */ protected final String htmlFilename;
/** * URL file separator string("/"). */ public static final String fileseparator="/";
/** * Initializes PrintWriter with the FileWriter. * * @param filename File Name to which the PrintWriter will do the Output. * @param docencoding Encoding to be used for this file. * @exception IOException Exception raised by the FileWriter is passed on * to next level. * @exception UnSupportedEncodingException Exception raised by the * OutputStreamWriter is passed on to next level. */ public HtmlWriter(String filename, String docencoding) throws IOException, UnsupportedEncodingException { super(genWriter(null, filename, docencoding)); htmlFilename = filename; }
/** * Initializes PrintWriter with the FileWriter. * * @param path The directory path to be created for this file. * @param filename File Name to which the PrintWriter will do the Output. * @param docencoding Encoding to be used for this file. * @exception IOException Exception raised by the FileWriter is passed on * to next level. * @exception UnSupportedEncodingException Exception raised by the * OutputStreamWriter is passed on to next level. */ public HtmlWriter(String path, String filename, String docencoding) throws IOException, UnsupportedEncodingException { super(genWriter(path, filename, docencoding)); htmlFilename = filename; }
/** * Create the directory path for the file to be generated, construct * FileOutputStream and OutputStreamWriter depending upon docencoding. * * @param path The directory path to be created for this file. * @param filename File Name to which the PrintWriter will do the Output. * @param docencoding Encoding to be used for this file. * @exception IOException Exception raised by the FileWriter is passed on * to next level. * @exception UnSupportedEncodingException Exception raised by the * OutputStreamWriter is passed on to next level. * @return Writer Writer for the file getting generated. * @see java.io.FileOutputStream * @see java.io.OutputStreamWriter */ static Writer genWriter(String path, String filename, String docencoding) throws IOException, UnsupportedEncodingException { FileOutputStream fos; if (path != null) { DirectoryManager.createDirectory(path); fos = new FileOutputStream(((path.length() > 0)? path + fileseparator: "") + filename); } else { fos = new FileOutputStream(filename); } if (docencoding == null) { OutputStreamWriter oswriter = new OutputStreamWriter(fos); docencoding = oswriter.getEncoding(); return oswriter; } else { return new OutputStreamWriter(fos, docencoding); } }
/** * Print <HTML> tag. Add a newline character at the end. */ public void html() { println("<HTML>"); }
/** * Print </HTML> tag. Add a newline character at the end. */ public void htmlEnd() { println("</HTML>"); }
/** * Print <BODY> tag. Add a newline character at the end. */ public void body() { println("<BODY>"); }
/** * Print <BODY BGCOLOR="bgcolor"> tag. Add a newline character at the end. * * @param bgcolor BackGroung color. */ public void body(String bgcolor) { println("<BODY BGCOLOR=\"" + bgcolor + "\">"); }
/** * Print </BODY> tag. Add a newline character at the end. */ public void bodyEnd() { println("</BODY>"); }
/** * Print <TITLE> tag. Add a newline character at the end. */ public void title() { println("<TITLE>"); }
/** * Print </TITLE> tag. Add a newline character at the end. */ public void titleEnd() { println("</TITLE>"); }
/** * Print <UL> tag. Add a newline character at the end. */ public void ul() { println("<UL>"); }
/** * Print </UL> tag. Add a newline character at the end. */ public void ulEnd() { println("</UL>"); }
/** * Print <LI> tag. */ public void li() { print("<LI>"); }
/** * Print <LI TYPE="type"> tag. * * @param type Type string. */ public void li(String type) { print("<LI TYPE=\"" + type + "\">"); }
/** * Print <H1> tag. Add a newline character at the end. */ public void h1() { println("<H1>"); }
/** * Print </H1> tag. Add a newline character at the end. */ public void h1End() { println("</H1>"); }
/** * Print text with <H1> tag. Also adds </H1> tag. Add a newline character * at the end of the text. * * @param text Text to be printed with <H1> format. */ public void h1(String text) { h1(); println(text); h1End(); }
/** * Print <H2> tag. Add a newline character at the end. */ public void h2() { println("<H2>"); }
/** * Print text with <H2> tag. Also adds </H2> tag. Add a newline character * at the end of the text. * * @param text Text to be printed with <H2> format. */ public void h2(String text) { h2(); println(text); h2End(); }
/** * Print </H2> tag. Add a newline character at the end. */ public void h2End() { println("</H2>"); }
/** * Print <H3> tag. Add a newline character at the end. */ public void h3() { println("<H3>"); }
/** * Print text with <H3> tag. Also adds </H3> tag. Add a newline character * at the end of the text. * * @param text Text to be printed with <H3> format. */ public void h3(String text) { h3(); println(text); h3End(); }
/** * Print </H3> tag. Add a newline character at the end. */ public void h3End() { println("</H3>"); }
/** * Print <H4> tag. Add a newline character at the end. */ public void h4() { println("<H4>"); }
/** * Print </H4> tag. Add a newline character at the end. */ public void h4End() { println("</H4>"); }
/** * Print text with <H4> tag. Also adds </H4> tag. Add a newline character * at the end of the text. * * @param text Text to be printed with <H4> format. */ public void h4(String text) { h4(); println(text); h4End(); }
/** * Print <H5> tag. Add a newline character at the end. */ public void h5() { println("<H5>"); }
/** * Print </H5> tag. Add a newline character at the end. */ public void h5End() { println("</H5>"); }
/** * Print HTML <IMG SRC="imggif" WIDTH="width" HEIGHT="height" ALT="imgname> * tag. It prepends the "images" directory name to the "imggif". This * method is used for oneone format generation. Add a newline character * at the end. * * @param imggif Image GIF file. * @param imgname Image name. * @param width Width of the image. * @param height Height of the image. */ public void img(String imggif, String imgname, int width, int height) { println("<IMG SRC=\"images/" + imggif + ".gif\"" + " WIDTH=\"" + width + "\" HEIGHT=\"" + height + "\" ALT=\"" + imgname + "\">"); }
/** * Print <MENU> tag. Add a newline character at the end. */ public void menu() { println("<MENU>"); }
/** * Print </MENU> tag. Add a newline character at the end. */ public void menuEnd() { println("</MENU>"); }
/** * Print <PRE> tag. Add a newline character at the end. */ public void pre() { println("<PRE>"); }
/** * Print </PRE> tag. Add a newline character at the end. */ public void preEnd() { println("</PRE>"); }
/** * Print <HR> tag. Add a newline character at the end. */ public void hr() { println("<HR>"); }
/** * Print <HR SIZE="size" WIDTH="widthpercent%"> tag. Add a newline * character at the end. * * @param size Size of the ruler. * @param widthPercent Percentage Width of the ruler */ public void hr(int size, int widthPercent) { println("<HR SIZE=\"" + size + "\" WIDTH=\"" + widthPercent + "%\">"); }
/** * Print <HR SIZE="size" NOSHADE> tag. Add a newline character at the end. * * @param size Size of the ruler. * @param noshade noshade string. */ public void hr(int size, String noshade) { println("<HR SIZE=\"" + size + "\" NOSHADE>"); }
/** * Get the "<B>" string. * * @return String Return String "<B>"; */ public String getBold() { return "<B>"; }
/** * Get the "</B>" string. * * @return String Return String "</B>"; */ public String getBoldEnd() { return "</B>"; }
/** * Print <B> tag. */ public void bold() { print("<B>"); }
/** * Print </B> tag. */ public void boldEnd() { print("</B>"); }
/** * Print text passed, in bold format using <B> and </B> tags. * * @param text String to be printed in between <B> and </B> tags. */ public void bold(String text) { bold(); print(text); boldEnd(); }
/** * Print text passed, in Italics using <I> and </I> tags. * * @param text String to be printed in between <I> and </I> tags. */ public void italics(String text) { print("<I>"); print(text); println("</I>"); }
/** * Return, text passed, with Italics <I> and </I> tags, surrounding it. * So if the text passed is "Hi", then string returned will be "<I>Hi</I>". * * @param text String to be printed in between <I> and </I> tags. */ public String italicsText(String text) { return "<I>" + text + "</I>"; }
/** * Print "&nbsp;", non-breaking space. */ public void space() { print(" "); }
/** * Print <DL> tag. Add a newline character at the end. */ public void dl() { println("<DL>"); }
/** * Print </DL> tag. Add a newline character at the end. */ public void dlEnd() { println("</DL>"); }
/** * Print <DT> tag. */ public void dt() { print("<DT>"); }
/** * Print <DT> tag. */ public void dd() { print("<DD>"); }
/** * Print </DD> tag. Add a newline character at the end. */ public void ddEnd() { println("</DD>"); }
/** * Print <SUP> tag. Add a newline character at the end. */ public void sup() { println("<SUP>"); }
/** * Print </SUP> tag. Add a newline character at the end. */ public void supEnd() { println("</SUP>"); }
/** * Print <FONT SIZE="size"> tag. Add a newline character at the end. * * @param size String size. */ public void font(String size) { println("<FONT SIZE=\"" + size + "\">"); }
/** * Print <FONT ID="stylename"> tag. Add a newline character at the end. * * @param stylename String stylename. */ public void fontStyle(String stylename) { print("<FONT ID=\"" + stylename + "\">"); }
/** * Print <FONT SIZE="size" ID="stylename"> tag. Add a newline character * at the end. * * @param size String size. * @param stylename String stylename. */ public void fontSizeStyle(String size, String stylename) { println("<FONT size=\"" + size + "\" ID=\"" + stylename + "\">"); }
/** * Print </FONT> tag. */ public void fontEnd() { print("</FONT>"); }
/** * Get the "<FONT COLOR="color">" string. * * @param color String color. * @return String Return String "<FONT COLOR="color">". */ public String getFontColor(String color) { return "<FONT COLOR=\"" + color + "\">"; }
/** * Get the "</FONT>" string. * * @return String Return String "</FONT>"; */ public String getFontEnd() { return "</FONT>"; }
/** * Print <CENTER> tag. Add a newline character at the end. */ public void center() { println("<CENTER>"); }
/** * Print </CENTER> tag. Add a newline character at the end. */ public void centerEnd() { println("</CENTER>"); }
/** * Print anchor <A NAME="name"> tag. * * @param name Name String. */ public void aName(String name) { print("<A NAME=\"" + name + "\">"); }
/** * Print </A> tag. */ public void aEnd() { print("</A>"); }
/** * Print <I> tag. */ public void italic() { print("<I>"); }
/** * Print </I> tag. */ public void italicEnd() { print("</I>"); }
/** * Print contents within anchor <A NAME="name"> tags. * * @param name String name. * @param content String contents. */ public void anchor(String name, String content) { aName(name); print(content); aEnd(); }
/** * Print anchor <A NAME="name"> and </A>tags. Print comment string * "<!-- -->" within those tags. * * @param name String name. */ public void anchor(String name) { aName(name); print("<!-- -->"); aEnd(); }
/** * Print newline and then print <P> tag. Add a newline character at the * end. */ public void p() { println(); println("<P>"); } public void pEnd(){ println(); println("</P>"); } /** * Print newline and then print <BR> tag. Add a newline character at the * end. */ public void br() { println(); println("<BR>"); }
/** * Print <ADDRESS> tag. Add a newline character at the end. */ public void address() { println("<ADDRESS>"); }
/** * Print </ADDRESS> tag. Add a newline character at the end. */ public void addressEnd() { println("</ADDRESS>"); }
/** * Print <HEAD> tag. Add a newline character at the end. */ public void head() { println("<HEAD>"); }
/** * Print </HEAD> tag. Add a newline character at the end. */ public void headEnd() { println("</HEAD>"); }
/** * Print <CODE> tag. */ public void code() { print("<CODE>"); }
/** * Print </CODE> tag. */ public void codeEnd() { print("</CODE>"); }
/** * Print <EM> tag. Add a newline character at the end. */ public void em() { println("<EM>"); }
/** * Print </EM> tag. Add a newline character at the end. */ public void emEnd() { println("</EM>"); }
/** * Print HTML <TABLE BORDER="border" WIDTH="width" * CELLPADDING="cellpadding" CELLSPACING="cellspacing"> tag. * * @param border Border size. * @param width Width of the table. * @param cellpadding Cellpadding for the table cells. * @param cellspacing Cellspacing for the table cells. */ public void table(int border, String width, int cellpadding, int cellspacing) { println("\n<TABLE BORDER=\"" + border + "\" WIDTH=\"" + width + "\" CELLPADDING=\"" + cellpadding + "\" CELLSPACING=\"" + cellspacing + "\">"); }
/** * Print HTML <TABLE BORDER="border" CELLPADDING="cellpadding" * CELLSPACING="cellspacing"> tag. * * @param border Border size. * @param cellpadding Cellpadding for the table cells. * @param cellspacing Cellspacing for the table cells. */ public void table(int border, int cellpadding, int cellspacing) { println("\n<TABLE BORDER=\"" + border + "\" CELLPADDING=\"" + cellpadding + "\" CELLSPACING=\"" + cellspacing + "\">"); }
/** * Print HTML <TABLE BORDER="border" WIDTH="width"> * * @param border Border size. * @param width Width of the table. */ public void table(int border, String width) { println("\n<TABLE BORDER=\"" + border + "\" WIDTH=\"" + width + "\">"); }
/** * Print the HTML table tag with border size 0 and width 100%. */ public void table() { table(0, "100%"); }
/** * Print </TABLE> tag. Add a newline character at the end. */ public void tableEnd() { println("</TABLE>"); }
/** * Print <TR> tag. Add a newline character at the end. */ public void tr() { println("<TR>"); }
/** * Print </TR> tag. Add a newline character at the end. */ public void trEnd() { println("</TR>"); }
/** * Print <TD> tag. */ public void td() { print("<TD>"); }
/** * Print <TD NOWRAP> tag. */ public void tdNowrap() { print("<TD NOWRAP>"); }
/** * Print <TD WIDTH="width"> tag. * * @param width String width. */ public void tdWidth(String width) { print("<TD WIDTH=\"" + width + "\">"); }
/** * Print </TD> tag. Add a newline character at the end. */ public void tdEnd() { println("</TD>"); }
/** * Print <LINK str> tag. * * @param str String. */ public void link(String str) { println("<LINK " + str + ">"); }
/** * Print "<!-- " comment start string. */ public void commentStart() { print("<!-- "); }
/** * Print "-->" comment end string. Add a newline character at the end. */ public void commentEnd() { println("-->"); }
/** * Print <TR BGCOLOR="color" ID="stylename"> tag. Adds a newline character * at the end. * * @param color String color. * @param stylename String stylename. */ public void trBgcolorStyle(String color, String stylename) { println("<TR BGCOLOR=\"" + color + "\" ID=\"" + stylename + "\">"); }
/** * Print <TR BGCOLOR="color"> tag. Adds a newline character at the end. * * @param color String color. */ public void trBgcolor(String color) { println("<TR BGCOLOR=\"" + color + "\">"); }
/** * Print <TR ALIGN="align" VALIGN="valign"> tag. Adds a newline character * at the end. * * @param align String align. * @param valign String valign. */ public void trAlignVAlign(String align, String valign) { println("<TR ALIGN=\"" + align + "\" VALIGN=\"" + valign + "\">"); }
/** * Print <TD COLSPAN=i> tag. * * @param i integer. */ public void tdColspan(int i) { print("<TD COLSPAN=" + i + ">"); }
/** * Print <TD BGCOLOR="color" ID="stylename"> tag. * * @param color String color. * @param stylename String stylename. */ public void tdBgcolorStyle(String color, String stylename) { print("<TD BGCOLOR=\"" + color + "\" ID=\"" + stylename + "\">"); }
/** * Print <TD COLSPAN=i BGCOLOR="color" ID="stylename"> tag. * * @param i integer. * @param color String color. * @param stylename String stylename. */ public void tdColspanBgcolorStyle(int i, String color, String stylename) { print("<TD COLSPAN=" + i + " BGCOLOR=\"" + color + "\" ID=\"" + stylename + "\">"); }
/** * Print <TD ALIGN="align"> tag. Adds a newline character * at the end. * * @param align String align. */ public void tdAlign(String align) { print("<TD ALIGN=\"" + align + "\">"); }
/** * Print <TD ALIGN="align" ID="stylename"> tag. * * @param align String align. * @param stylename String stylename. */ public void tdVAlignClass(String align, String stylename) { print("<TD VALIGN=\"" + align + "\" ID=\"" + stylename + "\">"); }
/** * Print <TD VALIGN="valign"> tag. * * @param valign String valign. */ public void tdVAlign(String valign) { print("<TD VALIGN=\"" + valign + "\">"); }
/** * Print <TD ALIGN="align" VALIGN="valign"> tag. * * @param align String align. * @param valign String valign. */ public void tdAlignVAlign(String align, String valign) { print("<TD ALIGN=\"" + align + "\" VALIGN=\"" + valign + "\">"); }
/** * Print <TD ALIGN="align" ROWSPAN=rowspan> tag. * * @param align String align. * @param rowspan integer rowspan. */ public void tdAlignRowspan(String align, int rowspan) { print("<TD ALIGN=\"" + align + "\" ROWSPAN=" + rowspan + ">"); }
/** * Print <TD ALIGN="align" VALIGN="valign" ROWSPAN=rowspan> tag. * * @param align String align. * @param valign String valign. * @param rowspan integer rowspan. */ public void tdAlignVAlignRowspan(String align, String valign, int rowspan) { print("<TD ALIGN=\"" + align + "\" VALIGN=\"" + valign + "\" ROWSPAN=" + rowspan + ">"); }
/** * Print <BLOCKQUOTE> tag. Add a newline character at the end. */ public void blockquote() { println("<BLOCKQUOTE>"); }
/** * Print </BLOCKQUOTE> tag. Add a newline character at the end. */ public void blockquoteEnd() { println("</BLOCKQUOTE>"); }
/** * Get the "<CODE>" string. * * @return String Return String "<CODE>"; */ public String getCode() { return "<CODE>"; }
/** * Get the "</CODE>" string. * * @return String Return String "</CODE>"; */ public String getCodeEnd() { return "</CODE>"; }
/** * Print <NOFRAMES> tag. Add a newline character at the end. */ public void noFrames() { println("<NOFRAMES>"); }
/** * Print </NOFRAMES> tag. Add a newline character at the end. */ public void noFramesEnd() { println("</NOFRAMES>"); } /** * print * @param num */ public void printNbsps(int num) { for(int i=0;i<num;i++){ print(" "); } }
/** * Print some part of the Html file header. * * @param title Title of this HTML document. */ public void printPartialHeader(String title) { println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Frameset//EN\"" + "\"http://www.w3.org/TR/REC-html40/frameset.dtd\">"); html(); head(); title(); println(title); titleEnd(); println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">"); headEnd(); } /** * Get Html Hyper Link string. * * @param link String name of the file. * @param where Position of the link in the file. Character '#' is not * needed. * @param label Tag for the link. * @param bold Boolean that sets label to bold. * @param stylename String style of text defined in style sheet. * @return String Hyper Link. */ public String getHyperLink(String link, String where, String label, boolean bold, String stylename) { StringBuffer retlink = new StringBuffer(); retlink.append("<A HREF=\""); retlink.append(link); if (where.length() != 0) { retlink.append("#"); retlink.append(where); } retlink.append("\">"); if (stylename.length() != 0) { retlink.append("<FONT ID=\""); retlink.append(stylename); retlink.append("\">"); } if (bold) { retlink.append("<B>"); } retlink.append(label); if (bold) { retlink.append("</B>"); } if (stylename.length() != 0) { retlink.append("</FONT>"); } retlink.append("</A>"); return retlink.toString(); } public static void main(String[] args){ try { HtmlWriter h = new HtmlWriter("a\\b\\c","a.html", "gb2312"); h.html();
h.htmlEnd(); h.close(); } catch (IOException ex) { } } }
这些是主要的几个类,希望能对这个感兴趣的人有帮助 
|