JTextPane的换行问题解决

  Swing包中的JTextPane功能非常强大,利用它,可以给容易地制做html、word等文字编辑器。但是JTextPane默认情况下按下Enter键,输出的html代码中总是显示如下:

<p style=”margin-top: 0px”></p>

  margin-top: 0px的意思为上边距为0。也就是说当前行与前一行没有行间距。如果你正在制做类似Word这样的编辑器,很显然这并不是我们想要的。我们更希望<p>标签使用定义的css中的样式显示。说来惭愧,这个问题困扰了我很久,一直没有好的解决方法。曾经试图重写JTextPane的document,为其追加rule。也试过监控enter事件,并利用insertHtml插入<p>,结果都不理想。今天偶然的情况下,发现了解决方法,非常非常简单,只要在初始化JTextPane后,设置其默认文本即可。如下:

JTextPane tp = new JTextPane();
tp.setText(“<p></p>”);

  这样设置后,输出的html代码就变为<p></p>了。越是简单的东西,越难找到问题所在,就是这么简单的设置,困扰了我很久。通过这个例子,也可以举一反三,实现例如<div>等html标签的默认样式。

  希望对你有所帮助。

Popularity: 16%

Digg Google Bookmarks reddit Mixx StumbleUpon Technorati Yahoo! Buzz DesignFloat Delicious BlinkList Furl

没有评论 to “JTextPane的换行问题解决”

留下评论:

昵称(必须):
邮箱地址 (不会被公开) (必须):
站点
评论 (必须)
XHTML: 您可以使用这些标记: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>