jtextpane的使用方法

2023-05-16

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(), 
       "<img src='http://pic1.sc.chinaz.com/Files/pic/icons128/4803/xplorer.png'>", 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可以设置常用的文本和段落格式。
 
 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jtextpane的使用方法 的相关文章

  • CMake 使用方法 & CMakeList.txt

    cmake 简介 CMake是一个跨平台的安装 编译 工具 可以用简单的语句来描述所有平台的安装 编译过程 他能够输出各种各样的makefile或者project文件 能测试编译器所支持的C 43 43 特性 类似UNIX下的automak
  • Linux awk 中 BEGIN 和 END 的使用方法

    1 awk的流程控制BEGIN和END http blog 51cto com 151wqooo 1309851 2 awk详解 http blog 51cto com 7177526 1387238
  • MFC CStringArray使用方法

    xfeff xfeff MFC CStringArray使用方法 2014 07 04 10 03 34 转载 标签 xff1a vc 分类 xff1a Visual C CArray arrroads CStringArray road
  • c++中 new的使用方法

    c 43 43 中 xff0c new的用法很灵活 xff0c 这里进行了简单的总结 1 new 分配这种类型的一个大小的内存空间 并以括号中的值来初始化这个变量 2 new 分配这种类型的n个大小的内存空间 并用默认构造函数来初始化这些变
  • insert语句中sequence的使用方法

    我们常常在表中需要插入一些自动增长的值 一方面 我们可以手动添加这些值 xff0c 另一方面 oracle提供的sequence可以帮助我们实现插入的值自动增长 而不需要我们手动的提供值 我们需要做的就是设置好sequence的初值和增长值
  • log4net(winform)使用方法

    前言 xff1a log4net是 Net下一个非常优秀的开源日志记录组件 log4net记录日志的功能非常强大 它可以将日志分不同的等级 xff0c 以不同的格式 xff0c 输出到不同的媒介 第一步 xff1a 引入组件 xff1a 引
  • sql中limit使用方法

    sql中limit使用方法 此处以mysql为例 xff0c 但是我相信物以变通在oracle上也一定适用 1 下面是几种limit的方法 xff1a 原则看看下面几个例子应该就懂了 在数据库中很多地方都会用到 xff0c 比如当你数据库查
  • switch-case使用方法

    switch case 语句判断一个变量与一系列值中某个值是否相等 xff0c 每个值称为一个分支 switch case 语句语法格式如下 xff1a switch语句应用举例1 xff1a public class VariableTe
  • 无法删除 JTextPane 中 html 内容的额外行距

    我无法将 Java 中的行挤在一起JTextPane如果我将内容类型设置为text html 我希望它们像内容类型一样紧密地结合在一起text plain 默认值 The line height top margin CSS 属性似乎没有帮
  • 更改 JtextPane 中的鼠标指针

    我有一个JTextPane其内容类型为文本 纯文本 我为此设置了一些文本JTextPane它包含一些显示的文本URLs 当我将鼠标指向该文本时 我想仅将鼠标指针更改为手形指针 这个功能可以实现吗 注 我有以下内容JTextPane as t
  • 在 Swing 的 JTextPane 中设置选项卡策略

    我希望 JTextPane 在按下 Tab 时插入空格 目前它插入制表符 ASCII 9 无论如何 是否可以自定义 JTextPane 的选项卡策略 除了捕获 选项卡键 事件并自己插入空格似乎是一个 您可以在 JTextPane 上设置 j
  • Java JTextPane + JScrollPane:取消/激活自动滚动

    我目前正在用 Java 编写一个简单的聊天 目前我陷入了这个问题 我希望我的输出 JTextPane 的行为就像您期望它从良好的聊天中获得的那样 即默认情况下 当新文本到达时文本会自动滚动 使用 outputfield setCaretPo
  • Java JTextPane JScrollPane 显示问题

    下面的类实现了一个 chatGUI 当它运行正常时 屏幕如下所示 精美 ChatGUI http img21 imageshack us img21 7177 rightchat jpg 当我输入大长度的文本时 问题经常出现 50 100
  • 在 Java HTML 感知组件中使用

    我有以下问题 我使用 JTextPane 显示 HTML 文档 在我的 HTML 文本中有 shy 在 w3 org 上害羞 http www w3 org TR html4 sgml entities html进行软连字符 我的问题是 没
  • Java字符串replaceAll()

    我一直想知道是否例如 JTextPane chatTextArea new JTextPane s replaceAll emoticon public String emoticon chatTextArea insertIcon new
  • 更改 JTextPane (Java Swing) 中段落的背景颜色

    Java Swing 中是否可以更改段落的背景颜色 我尝试使用 setParagraphAttributes 方法 下面的代码 设置它 但似乎不起作用 StyledDocument doc textPanel getStyledDocume
  • 禁用 JTextPane 中的编辑,同时允许可见的光标移动

    我有一个JTextPane它是通过从文件中读取来填充的 然后对数据进行解析和格式化 该用户无权编辑JTextPane 但我希望他们能够使用可见的光标在其中导航 如果我使用setEditable false 光标是不可见的 尽管可以通过按住来
  • 让 JTextPane 根据内容调整高度

    我想得到一个JTextPane根据我喂它的内容来调整它的高度 我所能做的就是使用 Dimension 设置固定的像素高度 我该如何制作JTextPane折叠 展开以便它适合内容 我可能会补充一点 我在一个GridBagLayout ed J
  • 使用 HTMLDocument 在 JTextPane 中启用自动换行

    我到处都读到人们寻找方法的答案enabling文字换行JTextPane 但它们都不适合我 我正在使用一个HTMLDocument 显示 text html 内容 到目前为止我发现没有任何东西可以让它发挥作用 这JTextPane始终使 J
  • 更改 JTextPane 的大小

    我是Java新手 刚刚在StackOverflow中找到了这段代码 ResizeTextArea https stackoverflow com questions 9370561 enabling scroll bars when jte

随机推荐

  • 位域的定义和使用

    位域 xff1a 有些信息在存储时 xff0c 并不需要占用一个完整的字节 xff0c 而只需占几个或一个二进制位 例如在存放一个开关量时 xff0c 只有0和1 两种状态 xff0c 用一位二进位即可 为了节省存储空间 xff0c 并使处
  • Makefile 的运行(六)

    一般来说 xff0c 最简单的就是直接在命令行下输入make命令 xff0c make命令会找当前目录的makefile来执行 xff0c 一切都是自动的 但也有时你也许只想让make重编译某些文件 xff0c 而不是整个工程 xff0c
  • FreeRTOS 任务优先级说明

    freeRTOS任务优先级与Unix进程优先级不同 FreeRTOS 任务优先 xff1a 任务优先级数值越小 xff0c 任务优先级越低 Unix 任务优先 xff1a 进程优先级数值越小 xff0c 进程优先级越高 下面对 FreeRT
  • QT子线程读取串口数据并传到主线程

    转载 读取串口部分借鉴于Quartz010的文章 如何在QT中读取串口数据 http blog csdn net zz709196484 article details 66474917 这是博客网址 大致思路就是子线程去读取串口数据并传送
  • 最常用的Java库一览

    一个典型的Java项目依赖于第三方库 本文总结的Java库适用于各种应用 xff0c 比较流行并且广泛使用 其中一些还提供简单的示例 xff08 来自ProgramCreek xff09 Java SDK 肯定是使用最广的库 xff0c 所
  • C#Socket编程详解(一)TCP与UDP简介

    一 TCP与UDP 1 TCP 1 1 定义 TCP xff08 TransmissionControl Protocol xff09 传输控制协议 是一种可靠的 面向连接的协议 xff08 eg 打电话 xff09 传输效率低全双工通信
  • AD19导出bom表的方法(按照元件不同数值分类,重点信息突出)

    我画电路图用的是AD19的软件 xff0c 最后板子画好了要进行元器件采购要生成bom表 xff0c 查了一下相关的资料 xff0c 总结整理一下 xff1a 1 在报告 xff08 report xff09 打开Bill of Mater
  • 为什么c++要“在头文件中声明,在源文件中定义”?

    gt gt gt 搬运一个知乎问答 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 下面是回答 61 61 61 61 61 61 61 61 61 61 61 61 61
  • HTTP header 参数丢失情况分析以及解决防范

    HTTP header 参数丢失情况分析以及解决防范 1 问题 当项目有Nginx做了代理的时候 xff0c 请求头中传参 34 user ip 34 xff0c 接口接收不到 2 问题分析 默认nginx是不能转发带 的header信息的
  • Keil 调试局部变量查看显示not in scope

    调整优化级别 不同的优化级别允许您在编译代码中可用的调试信息级别与代码性能之间进行权衡 可以使用以下优化级别 xff1a o O0应用最小优化 大多数优化都被关闭 xff0c 生成的代码具有最佳的调试视图 o O1应用受限优化 例如 xff
  • 【32单片机学习】(6)STM32串口+DMA收发不定长数据

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 目录 前言 1 DMA介绍 2 串口接收数据 3 实验现象 1 实验电路图 2 串口收发不定长数据视频演示 3 OLED 显示接收数据 4
  • www-authenticate认证过程浅析

    文档 xff1a www authenticate认证过程简单研究 创建 xff1a http hi baidu com netee 日期 xff1a 2009 10 07 版权 xff1a 原创内容 xff0c 转载请注明出处 xff0c
  • STM32F407ZG 串口通信+固定帧头帧尾传输数据帧

    STM32F407ZG开发板学习 xff08 4 xff09 串口简介通信接口USART接线电平标准数据帧 实验 xff1a 固定帧头帧尾数据传输需求最终思路以及思考过程思路中断函数程序段长度的问题缓冲区数据结构的决定 初始化配置中断服务函
  • 基于杰理RTOS平台的433射频无线数传通信

    在杰理的AC7916N实现了433射频的数据发送 xff0c 在杰理的AD15系列实现433射频接收 xff0c 本代码用于门铃项目收发 xff0c 下面请看代码 首先是AC7916N的433数据发送代码 xff0c 发送部分的程序放在一个
  • boost简介

    我认为做为一名c 43 43 编程人员 xff0c 对boost库必须要有一定的了解与使用 这对于代码的整洁和效率有很大的帮助 借着这个机会整理一下使用boost库的经验 xff0c 顺便再学习一下 首先 xff0c 什么是boost库 b
  • Android上增加对M3U8文件下载的功能

    最近给一个客户提了一个需求 xff0c 想对他们网站的视频做一个下载的功能 xff0c 希望他的App能够缓存视频功能 xff0c 然后用户可以在下次快速播放视频 一开始接到这个需求 xff0c 自然是去搜罗一遍 xff0c 有没有可靠稳定
  • VLC自定义m3u8协议片段加密方式

    hls xff08 m3u8 xff09 本身有一套自己的加密方式 xff0c 可以保证片段是安全的 但是本身在传输的过程中加密key请求容易被截获 xff0c 这样存在一点片段key被截取的风险 xff0c 截取者就可以根据片段和key重
  • Fragment里使用CordovaWebView

    因为CordovaWebView 默认的初始化里判断了Content是不是继承CordovaInterface xff0c 如果直接使用Fragment继承CordovaInterface xff0c CordovaInterface有个抽
  • CMake教程(二)- 添加静态库文件和动态库文件

    CMake教程 xff08 二 xff09 添加静态库文件和动态库文件 什么是库文件静态链接库动态链接库静态库和动态库的区别 如何在CMake中添加库文件CMake 中 target link libraries 的 PRIVATE xff
  • jtextpane的使用方法

    jtextpane是java swing中的一个组件 xff0c 是一个可以编辑和显示html xff0c rtf和普通文本的富文本组件 xff0c jtextpane是根据使用EditorKit来显示内容的 xff0c 目前jtextpa