`
rcyl2003
  • 浏览: 236956 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

JEditorPane显示HTML --Swing篇

阅读更多
Java实用经验总结--Swing篇【四】
2007年07月27日 星期五 19:10

5       JEditorPane显示HTML描述的文本

JDK1.4开始,Swing的很多组件(如JLabel)都可以显示HTML语言写的文本。这是一个巨大的进步,因为我们可以将所要显示的文字的配置信息如字体,字号,颜色,换行等信息直接以HTML写入到组件的setText()方法当中,不但免去了事后对这些信息进行繁杂配置的烦恼,而且还丰富和简化了所要显示文本的形式。而JEditorPane则有所不同,它天生就是用来分析并显示格式化文本的,由一些Java写的开源Web浏览器甚至都采用改进后的JEditorPane作为Web页的显示器。下图就是SwingSet2中的JEditorPane相关的例子。我们可以看到JEditorPane可以显示大多数的HTML元素,包括图片,格式化文字,URL链接等。

然而通过JEditorPane显示HTML描述的文本有两种方式:

第一种是直接使用JEditorPane.setPage(String htmlTxt);来显示用html语言写成的文本。但是这种方法的缺点是无法显示HTML文本中所描述的对外部资源(如图片,CSS等)的引用。所以如果要显示更为丰富的信息,仅仅用第一种方法是不够的。

       所以第二种方法就呼之欲出:将用HTML语言描述的动态文本信息写到文件中,使之成为真正的HTML文件,再用JEditorPane.setPage(URL)JEditorPane.setPage(String htmlFilePath)JEditorPane方法读入这个动态生成的内容文件就可以让JEditorPane自动为我们显示丰富的信息了。

   String vNewReportFileName = "file:///c:/temp.html";

   JEditorPane reportPane = new JEditorPane();

   File f = new File(FileUtil.reportDir,vNewReportFileName);

  FileWriter fw = new FileWriter(f, false);

   fw.write("<html>");

  fw.write("<head>");

  …………

  fw.write("</body></html>");

//清理操作

   fw.flush();

   fw.close();

f = null;

reportPane.setPage(vNewReportFileName);

下图就是我的程序所显示的结果,从图中我们可以清楚地看到由CSS文件定义的表格的Title,这个Title是由一个蓝色的图片作为背景的。

让人遗憾的是用JEditorPane显示的表格的边框都很粗,虽然我已经将了表格的border设置为1,可是JEditorPane依然我行我素。但是在IE下,表格的边框的表现就要好的多:

网上有人说这是一个Bug,但是没有人给过解决这个问题的方法,如果有人又解决方法的话请留言,我将不胜感激!

分享到:
评论

相关推荐

    Swing拖拽(文件拖入JEditorPane)

    JEditorPane是Swing提供的一种文本编辑器组件,它可以显示和编辑HTML、纯文本等多种格式的文本。 1. **Swing拖放机制**: Swing的拖放功能是基于Java的JavaBeans组件模型和JavaBeans Activation Framework(JAF)...

    JEditorPane_html.rar_html jeditorpane_jeditorpane html

    Java中的`JEditorPane`是Swing组件库的一部分,它是一个可以显示和编辑文本、HTML以及支持基本格式化的富文本的组件。这个组件允许开发者在Java应用程序中嵌入一个简单的HTML浏览器,就像我们所说的"JEditorPane_...

    AWT与Swing使用区别

    例如,Swing的JEditorPane可以方便地显示和编辑HTML内容,而AWT没有直接对应的功能。 3. **线程安全性** - **AWT**:AWT组件是线程安全的,可以在多个线程中安全地使用。 - **Swing**:Swing组件不是线程安全的,...

    疯聊 - 基于Java Swing编写的即时通讯应用 (in XMETC).zip

    在"疯聊"应用中,开发者可能使用了`JFrame`作为主窗口,`JButton`用于发送和接收消息,`JTextArea`或`JEditorPane`作为聊天输入和显示区域,`JList`或`JTable`来展示联系人列表和聊天历史。此外,`ActionListener`...

    JEditorPane/JTextPane常见操作(字体,颜色,字号,加粗,斜线,下划线,保存,行间距 等操作)以及HTML空格处理

    在Java的Swing库中,`JEditorPane`和`JTextPane`是两种非常重要的文本组件,它们允许用户编辑和显示富文本内容,包括不同的字体、颜色、字号、样式等。这两个组件都是`javax.swing.text`包的一部分,提供了丰富的...

    java浏览器+swing嵌套网页+源码免费

    1. **创建Swing组件**:首先,创建一个`JFrame`作为主窗口,然后在其中添加一个可以显示网页的组件,如`JEditorPane`或自定义的`JWebPane`替代。 2. **加载网页内容**:使用`setPage`方法加载URL指定的网页,或者...

    java swing 多选下拉框 支持动态加载数据

    Java Swing 是Java GUI(图形用户界面)库,用于构建桌面应用程序。在Swing中,多选下拉框通常由JComboBox类实现,但默认的JComboBox只支持单选。为了实现多选功能,我们需要扩展JComboBox或者使用第三方库,如JList...

    控制jEditorPane和jTextPane换行的演示程序

    在Java Swing库中,`JEditorPane`和`JTextPane`是两个常用的文本组件,它们用于显示和编辑富文本内容。这两个组件都是基于`javax.swing.text`包中的抽象类`Document`,提供了对HTML和纯文本的支持。在这个“控制...

    很强大-功能齐全带分页的swing项目

    项目内集成的一些小功能,如“浏览器”、“WORD”、“Excel”、“记事本”和“计算器”,显示了Swing的跨平台能力和组件复用性。这些功能的实现可能依赖于Java的Runtime类来执行系统命令,或者使用Apache POI库处理...

    swing发邮件客户端

    Swing邮件客户端是一种基于Java Swing库开发的桌面应用程序,它允许用户发送电子邮件,类似于流行的Foxmail客户端。Swing是Java的一个图形用户界面(GUI)工具包,提供了丰富的组件和功能,使得开发者可以创建出美观且...

    swing内嵌网页(demo和jar)

    1. **JEditorPane**: JEditorPane是Swing中的一个文本组件,它能够显示和编辑基本的HTML文本,以及某些特定的text/plain和text/html格式的数据。它不支持所有现代网页的复杂特性,但适用于展示简单的HTML内容,如纯...

    Swing写的XML格式化工具XMLFormatter | #swing #xml

    Swing组件如JFileChooser用于选择文件,JTextArea或JEditorPane显示和编辑文本,JButton执行格式化功能,以及可能的JProgressBar来显示处理进度。 XMLFormatter的核心功能包括: 1. **读取XML文件**:程序首先会...

    java应用页面内嵌游览器swing.zip

    首先,我们要了解Java中的`javax.swing.JEditorPane`组件,它是Swing提供的一种可以显示HTML文本和图像的组件。通过这个组件,我们可以实现在Java应用内部加载和显示网页内容。JEditorPane 支持基本的HTML格式,并且...

    swing实现百度搜索

    JEditorPane是Swing中的一个文本组件,它可以显示和编辑简单的HTML文档或纯文本。然而,在显示复杂或者定制化的HTML内容时,它的功能可能显得有限。在这种情况下,开发者选择了第三方库Jsoup来增强HTML解析和渲染...

    java.swing总结

    Swing 还提供了其他高级功能,如 JFileChooser 用于打开或保存文件对话框,JOptionPane 用于显示警告、确认或输入对话框,JEditorPane 用于显示和编辑富文本,JScrollPane 用于滚动组件等。Swing 还支持国际化和无...

    java swing里支持,js,java编程语言,关键字高亮显示

    5. **文本组件**:在Swing中,`JTextComponent`(如`JTextArea`或`JEditorPane`)是用于显示和编辑文本的基础类。要实现关键字高亮,你需要对这些组件进行扩展或使用特定的插件,如`SyntaxHighlighter`。 6. **事件...

Global site tag (gtag.js) - Google Analytics