java将异常写到text_JavaFX将文本附加到TextArea会抛出异常

答案:JavaFX append text to TextArea throws Exception

我有一个计算目录大小的线程.

我使用walkFileTree.

为了获得一些信息,我将actuall文件追加到textarea.

但是当我有很多文件(例如> 300)时,我得到了

Exception in thread “JavaFX Application Thread” java.lang.ArrayIndexOutOfBoundsException

这是代码:

private void startScheduledExecutorService() {

Thread dt = new Thread(new Runnable() {

public void run() {

try {

taStatus.appendText("Dateien werden ermittelt

");

Files.walkFileTree(quellOrdner.toPath(), new SimpleFileVisitor() {

@Override

public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) {

size += attrs.size();

files++;

taStatus.appendText(file.toString() + "

");

return FileVisitResult.CONTINUE;

}

});

} catch (IOException e) {

e.printStackTrace();

}

}

}, "dt");

dt.setDaemon(true);

dt.start();

}

当我创建一个ArrayList并将每个文件添加到它并将此ArrayList(一行中的每个条目)附加到TextArea时,它正在工作.

它看起来像线程速度的问题?

完整的例外

Exception in thread "JavaFX Application Thread" java.lang.NullPointerException

at com.sun.javafx.text.PrismTextLayout.addTextRun(PrismTextLayout.java:755)

at com.sun.javafx.text.GlyphLayout.addTextRun(GlyphLayout.java:121)

at com.sun.javafx.text.GlyphLayout.breakRuns(GlyphLayout.java:191)

at com.sun.javafx.text.PrismTextLayout.buildRuns(PrismTextLayout.java:770)

at com.sun.javafx.text.PrismTextLayout.layout(PrismTextLayout.java:1021)

at com.sun.javafx.text.PrismTextLayout.ensureLayout(PrismTextLayout.java:223)

at com.sun.javafx.text.PrismTextLayout.getBounds(PrismTextLayout.java:246)

at javafx.scene.text.Text.getLogicalBounds(Text.java:358)

at javafx.scene.text.Text.impl_computeGeomBounds(Text.java:1168)

at javafx.scene.Node.updateGeomBounds(Node.java:3556)

at javafx.scene.Node.getGeomBounds(Node.java:3509)

at javafx.scene.Node.getLocalBounds(Node.java:3457)

at javafx.scene.Node.updateTxBounds(Node.java:3620)

at javafx.scene.Node.getTransformedBounds(Node.java:3403)

at javafx.scene.Node.updateBounds(Node.java:538)

at javafx.scene.Parent.updateBounds(Parent.java:1706)

at javafx.scene.Parent.updateBounds(Parent.java:1706)

at javafx.scene.Parent.updateBounds(Parent.java:1706)

at javafx.scene.Parent.updateBounds(Parent.java:1706)

at javafx.scene.Parent.updateBounds(Parent.java:1706)

at javafx.scene.Parent.updateBounds(Parent.java:1706)

at javafx.scene.Parent.updateBounds(Parent.java:1706)

at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2404)

at com.sun.javafx.tk.Toolkit.lambda$runPulse$30(Toolkit.java:314)

at com.sun.javafx.tk.Toolkit$$Lambda$178/156290868.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:313)

at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:340)

at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:525)

at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:505)

at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$400(QuantumToolkit.java:334)

at com.sun.javafx.tk.quantum.QuantumToolkit$$Lambda$47/104706045.run(Unknown Source)

at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)

at com.sun.glass.ui.gtk.GtkApplication._runLoop(Native Method)

at com.sun.glass.ui.gtk.GtkApplication.lambda$null$48(GtkApplication.java:139)

at com.sun.glass.ui.gtk.GtkApplication$$Lambda$43/1086508417.run(Unknown Source)

at java.lang.Thread.run(Thread.java:745)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值