我有一个应用程序,它不断地在套接字上接收数据,然后将这些数据记录到文件中,同时在JTextPane中显示这些数据.当然,随着数据被写入JTextPane的底层文档,内存使用量继续增加.

是否有一种简单的方法来限制允许使用JTextPane的内存?我希望JTextPane的工作方式类似于典型命令shell的命令历史记录的工作方式.

解决方法

只需检查内容并相应地擦除它到最大缓冲区大小..因为它是一个JTextPane你将使用textpane使用的文档类:
void clampBuffer(int incomingDataSize)
{
   Document doc = textPane.getStyledDocument();
   int overLength = doc.getLength() + incomingDataSize - BUFFER_SIZE;

   if (overLength > 0)
   {
      doc.remove(0,over_length);
   }
}

这只是我写的一个片段,没有亲自检查……只是为了给你这个想法.当然应该在向textPane添加文本之前运行它.

顺便说一下,如果您没有使用JTextPane的丰富编辑器功能,我建议您使用更简洁的JTextArea.

java – 限制JTextPane内存使用量的更多相关文章

  1. NSDateComponents周在iOS8上的工作方式不同

    自iOS8以来,不推荐使用NSDateComponents周.Apple建议使用weekOfMonth或weekOfYear,具体取决于上下文,但它们的工作方式不同.例如:components1返回month=0,week=1,day=0,weekOfMonth和weekOfYear都等于2147483647.components2返回month=1,week=0,weekOfMonth和weekOfYear都等于2147483647.Week返回某段时间内的周数,并且与一个月或一年中的一周的数量完全不同

  2. ios – Xcode 8 Beta中的约束和大小类

    我正在尝试在我的应用中创建与我的肖像限制不同的景观约束.通常我在以前版本的Xcode中使用大小类,但我使用的是测试版,我看到的只是设备.如何在Xcode8中使用这个新UI来处理大小类?

  3. android – 如何在API 19(kitkat)上设置精确的重复警报?

    即什么是旧的setRepeating()的API19版本?你能否提供一个在KitKat每天早上7:30设置闹钟的例子?

  4. .net – 了解dll及其在Visual Studio中的工作方式

    有没有人在dll上有一个很好的资源以及如何在VisualStudio中使用/生成它们?

  5. javafx – Java 11与Java 8中的拖放工作方式不同

    我编写了一个程序,它使用了javafx中的拖放功能.在JavaFX8中它完美运行.在JavaFX11中,拖放操作功能失效:我没有得到不同的鼠标光标,我没有得到我正在拖动的行的鬼图像,而且滴有问题–它们不会触发鼠标释放,然后每次我点击表格时触发掉落.这是最小的可运行示例,它演示了我面临的问题.在Java8JVM上运行它可以根据需要运行.在Java11JVM上它没有.我在Ubuntu18.04上.我很

  6. java – 限制JTextPane内存使用量

    我有一个应用程序,它不断地在套接字上接收数据,然后将这些数据记录到文件中,同时在JTextPane中显示这些数据.当然,随着数据被写入JTextPane的底层文档,内存使用量继续增加.是否有一种简单的方法来限制允许使用JTextPane的内存?只是为了给你这个想法.当然应该在向textPane添加文本之前运行它.顺便说一下,如果您没有使用JTextPane的丰富编辑器功能,我建议您使用更简洁的JTextArea.

  7. javascript – Cycle2插件的初始化在Windows上的工作方式与在OSX上的工作方式不同

    如果有关于此的类似问题,请指出我的方向.这个问题很难描述,但我会尽我所能:http://jsfiddle.net/e70r1mtw/这里的用户可以看到从灰度渐变到彩色的幻灯片.这适用于OSX和Windows中的Firefox.(客户端知道这种效果在IE中不起作用,并且可以.)但是,在Windows上的Chrome中,第一张幻灯片不会从灰度渐变,而是保持颜色.我怀疑这与DOM的加载方式以及Cycle

  8. Delphi 7的线程工作方式的一些心得

    总结以上是DEVMAX为你收集整理的Delphi7的线程工作方式的一些心得全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  9. 快速理解vue的工作方式

    总结以上是DEVMAX为你收集整理的快速理解vue的工作方式全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  10. 多线程 – 在Delphi 2006控制台应用程序中,TThread的工作方式是否有所不同?

    我们有一个非常成熟的COMdll,我们使用DUnit进行测试.我们最近的一个测试创建了一些线程,并从这些线程测试对象.使用gui前端运行测试时此测试工作正常,但在作为控制台应用程序运行时挂起.这是我们在测试中所拥有的快速伪视图我已经尝试在OnExecute中做任何事情,所以我确定这不是我正在测试的实际代码.在控制台中,fThreadRefCount永远不会减少,而如果我将它作为gui应用程序运行,那很好!

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部