jtextpane的使用方法

jtextpane是java swing中的一个组件,是一个可以编辑和显示html,rtf和普通文本的富文本组件,jtextpane是根据使用EditorKit来显示内容的,目前jtextpan的工具包有HTMLEditorKit,RTFEditorKit和DefaultEditorKit,分别对应各种文本显示。

因为编写邮件程序,想到使用一个组件来编写html文本,就想到了使用jtextpane。

 

private JTextPane textpane;
private HTMLDocument text_html;
private HTMLEditorKit htmledit;

htmledit=new HTMLEditorKit();
		//实例化一个HTMLEditorkit工具包,用来编辑和解析用来显示在jtextpane中的内容。
text_html=(HTMLDocument) htmledit.createDefaultDocument();
		//使用HTMLEditorKit类的方法来创建一个文档类,HTMLEditorKit创建的类型默认为htmldocument。
textpane.setEditorKit(htmledit);
		//设置jtextpane组件的编辑器工具包,是其支持html格式。
textpane.setContentType("text/html");
		//设置编辑器要处理的文档内容类型,有text/html,text/rtf.text/plain三种类型。
textpane.setDocument(text_html);
		//设置编辑器关联的一个文档。

jtextpane提供了设置段落和设置文本字体,颜色等属性的方法。

java中,文本,段落格式的属性,都集成了AttributeSet接口,属性是键和值相关联。这个接口本身不提供添加属性的方法,我们使用它的子接口MutableAttributeSet。

SimpleAttributeSet是实现了MutableAttributeSet的一个类,专门用来实现一些简单属性的使用。

StyleConstants类,是java swing中用来管理属性接口的类,它提供了设置属性值,和获取属性值的一些方法。

StyleConstants提供了设置许多属性的方法。

SimpleAttributeSet attr=new SimpleAttributeSet();
//实例化一个simpleAttributeSet类。
StyleConstants.setAlignment(attr, StyleConstants.ALIGN_CENTER); 
			//使用StyleConstants工具类来设置attr属性,这里设置居中属性。
textpane.setParagraphAttributes(attr,false);
			//设置段落属性,第二个参数为false表示不覆盖以前的属性,如果选择true,会覆盖以前的属性。
StyleConstants.setAlignment(attr, StyleConstants.ALIGN_LEFT); 
   //设置属性居左


调用JColorChooser组件来设置文本颜色。

Color color=JColorChooser.showDialog(null,"color title", Color.BLACK);
//使用JColorChooser组件来提供一个颜色选择框。并返回选择的颜色,最后一个参数是缺省颜色。
 
StyleConstants.setForeground(attr, color);
    //设置颜色属性,参数为color类型。
textpane.setCharacterAttributes(attr, false);
//jtextpane的方法,setCharacterAttributes,用来设置选择文本颜色,如果有选择文本,会设置这些文本的颜色属性。


设置了HTMLEditorKit类型的工具包后,可以使用HTMLEditorKit来插入html语言文本,比较常用是插入图片和超链接。


插入一个图片。

htmledit.insertHTML(text_html, textpane.getCaretPosition(), 
       "", 0, 0,HTML.Tag.IMG);
//HTMLEditorKit提供了方法来插入html文本,
insertHTML(HTMLDocument doc, int offset, String html, int popDepth, int pushDepth, HTML.Tag insertTag) 用来插入html文本
第一个参数是要插入内容的html文本,一般都是和jtextpane相关联的文本,offset为插入位置,textpane.getCaretPosition()方法获取当前编辑器中光标的位置,
popDepth和pushDepth是插入要生成的标记,一般设置为0,HTML.Tag insertTag是开始插入文档的首个标记,一般对应要插入的html文本标签。
 
设置段落和设置属性还有很多方法,使用StyleConstants可以设置常用的文本和段落格式。
 
 

你可能感兴趣的:(java)