我正在读取一个串口并将其写入文本区域作为滚动值.我创建了SerialPortReader类,它运行良好.我的主代码只是调用"updateTextArea()"来告诉类textarea的位置.这工作将持续一段时间,但是当我开始向串口输入更多数据时 - 比如~100字节 - Java感觉NullPointerException.如果我注释掉"updateTextArea()"调用(〜第13行),那么就没有异常.当我取消注释"updateTextArea"时,该程序可以完美地工作大约一分钟.我怀疑textarea缓冲区正在填满,但我不知道如何增加缓冲区大小或如何使新文本将旧文本推出缓冲区.

打印到控制台工作正常 - 大概 - 永远.我只运行了大约10分钟,但它没有那么多打嗝.

class SerialPortReader implements SerialPortEventListener {

byte[] serialData;

TextArea textArea;

@Override

public void serialEvent(SerialPortEvent event) {

try{

serialData = serialPort.readBytes();

for(byte dataReceived: serialData){

System.out.println("Byte Received: " + dataReceived);

}

updateTextArea();

} catch (SerialPortException ex){

System.out.println(ex);

}

}

public void initiateTextAreaUpdate(TextArea ta){

textArea = ta;

}

public void updateTextArea(){

if(textArea != null){

for(int i = 0; i < serialData.length; i++){

textArea.appendText(serialData[i] + "\n");

}

}

}

}

例外:

Exception in thread "EventThread COM5" java.lang.NullPointerException

at com.sun.javafx.sg.prism.NGTextHelper$TextAttributes.computeLinePadding(NGTextHelper.java:405)

at com.sun.javafx.sg.prism.NGTextHelper$TextAttributes.access$200(NGTextHelper.java:292)

at com.sun.javafx.sg.prism.NGTextHelper.buildTextLines(NGTextHelper.java:2357)

at com.sun.javafx.sg.prism.NGTextHelper.validateText(NGTextHelper.java:1847)

at com.sun.javafx.sg.prism.NGTextHelper.getCaretShape(NGTextHelper.java:1435)

at javafx.scene.text.Text.getDecorationShapes(Text.java:1150)

at javafx.scene.text.Text.impl_geomChanged(Text.java:757)

at javafx.scene.text.Text$1.invalidated(Text.java:214)

at javafx.beans.property.StringPropertyBase.markInvalid(StringPropertyBase.java:127)

at javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:161)

at javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:67)

at javafx.scene.text.Text.setText(Text.java:188)

at com.sun.javafx.scene.control.skin.TextAreaSkin$17.invalidated(TextAreaSkin.java:610)

at com.sun.javafx.binding.ExpressionHelper$Generic.fireValueChangedEvent(ExpressionHelper.java:359)

at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:100)

at javafx.scene.control.TextInputControl$TextProperty.fireValueChangedEvent(TextInputControl.java:1034)

at javafx.scene.control.TextInputControl$TextProperty.markInvalid(TextInputControl.java:1038)

at javafx.scene.control.TextInputControl$TextProperty.invalidate(TextInputControl.java:978)

at javafx.scene.control.TextInputControl$TextProperty.access$200(TextInputControl.java:950)

at javafx.scene.control.TextInputControl$1.invalidated(TextInputControl.java:119)

at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:155)

at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:100)

at javafx.scene.control.TextArea$TextAreaContent.insert(TextArea.java:196)

at javafx.scene.control.TextInputControl.replaceText(TextInputControl.java:373)

at javafx.scene.control.TextInputControl.insertText(TextInputControl.java:308)

at javafx.scene.control.TextInputControl.appendText(TextInputControl.java:298)

at mcsi.McsiGui$SerialPortReader.updateTextArea(McsiGui.java:489)

at mcsi.McsiGui$SerialPortReader.serialEvent(McsiGui.java:476)

at jssc.SerialPort$EventThread.run(SerialPort.java:1096)

感谢您的见解!

Ĵ

java textarea append_JavaFX TextArea.append()导致java.lang.NullPointerException相关推荐

  1. java locale中文_locale错误导致Java中文乱码错误的总结

    线上执行MapReduce任务计算时,经过排查发现了某些服务器计算的数据出现中文乱码问题,但是服务器的配置是完全一致的.由于我们使用的key可能包含中文,中文乱码问题体现在每次合并map记录的时候计算 ...

  2. java libjli.so_解决setcap导致Java加载libjli.so 失败问题

    背景 最近碰到一个问题,有个应用在启动的时候一直报错,错误信息如下: java: error while loading shared libraries: libjli.so: cannot ope ...

  3. java长时间_什么导致Java中长时间的旋转和同步时间?

    在 Java 8 Update 45中,将这些选项添加到java调用中: -XX:+PrintGCApplicationStoppedTime -XX:+PrintSafepointStatistic ...

  4. java 链接占用太多_Java程序链接数过多导致java.net.SocketException: No buffer space available问题...

    发布时间: Aug 29, 2020 更新时间: Aug 29, 2020 总字数:482 阅读时间:1m 作者: 谢先斌 Java程序链接数过多导致java.net.SocketException: ...

  5. 基本类型为空导致线上空指针异常问题 java.lang.NullPointerException: cannot unbox null value

    线上钉钉群突然报空指针异常,结合日志分析代码,如下: 报错信息:(含入参) reQueryDto={\"minAge\":null,\"maxAge\":26, ...

  6. java的stackoverflow_call stack - 导致java.lang.StackOverflow的原因

    实际上导致java.lang.StackOverflowError的原因通常是无意的递归. 对我来说,通常我打算为覆盖方法调用超级方法. 比如在这种情况下: publicclassVehicle{pu ...

  7. 空指针错误 java.lang.NullPointerException 浅谈

    使用基本的JAVA数据类型,变量的值要么已经是默认值,如果没有对其正常赋值,程序便不能通过编译,因此使用基本的JAVA数据类型(double,float,boolean,char,int,long)一 ...

  8. java.lang.NullPointerException错误分析

    java.lang.NullPointerException是什么错误 你使用了空的指针.在java中虽然号称抛弃了C++中不安全的指针,但其实他所有的东西你都可以理解为指针.这种情况一般发生在你使用 ...

  9. java 空指针异常(java.lang.NullPointerException)

    在Java中对值为null的指针调用任何方法,就会引发空指针异常(java.lang.NullPointerException).空指针异常绝对 是Java中最难查找和调试的一种异常,你永远无法得到任 ...

最新文章

  1. ImageSharp一个专注于NetCore平台图像处理的开源项目
  2. node 安装express提示不是内部或外部命令
  3. 使用Apache NFOP创建pdf
  4. 3m格式的文件怎么转换成mp3_怎么将电脑上的mp4文件转换成mp3格式
  5. java progressbar swt_SWT(JFace)体验之ProgressBar
  6. RQNOJ 342 最不听话的机器人:网格dp
  7. 关于PhpDE zend ide破解方式
  8. 业务异常通用类及全局异常处理
  9. 一个500人天的BI项目实施记录
  10. 【数据分析能力是指什么?】
  11. CNZZ、51啦、量子恒道、谷歌网站流量统计比较
  12. MATLAB快捷键大全
  13. 2022腾讯云学生服务器价格申请认证及购买攻略
  14. 【PPT在插入excel对象时报错】
  15. 桌面终端是计算机吗,桌面和终端
  16. 2022-2027年中国网上阅卷系统行业发展前景及投资战略咨询报告
  17. 日期类超详解(c++入门)
  18. kali 控制安卓手机
  19. Spark2.1.0之初体验
  20. 一名菜鸟程序猿对前端的简单理解及介绍

热门文章

  1. mysql附加数据库失败_我的数据库为什么附加不上去?
  2. 华为交换机不同网段互访_华为交换机实现不同VLAN之间互访
  3. java上下左中右的布局面板_JAVA GUI重要知识点学习心得
  4. 浙江省计算机二级c语言分数构成,计算机二级C语言题型和评分标准
  5. 基于javaweb+jsp+mysql的美容院管理系统
  6. 基于JAVA+SpringMVC+Mybatis+MYSQL的相声购票系统
  7. 测试人员,今天再不懂BDD就晚了!
  8. 剑指Offer的学习笔记(C#篇)-- 用两个栈实现队列
  9. Django学习之十: staticfile 静态文件
  10. BZOJ.3495.[PA2010]Riddle(2-SAT 前缀优化建图)