如何在javaFx中更新java-124版本后解析tableview中的嵌套列?

Exception in thread "JavaFX Application Thread" java.lang.NullPointerException at com.sun.javafx.scene.control.skin.NestedTableColum nHeader.dispose(NestedTableColumnHeader.java:323) at com.sun.javafx.scene.control.skin.NestedTableColum nHeader.updateTableColumnHeaders(NestedTableColumn Header.java:265) at com.sun.javafx.scene.control.skin.NestedTableColum nHeader.checkState(NestedTableColumnHeader.java:51 9) at com.sun.javafx.scene.control.skin.NestedTableColum nHeader.computePrefHeight(NestedTableColumnHeader. java:401) at javafx.scene.Parent.prefHeight(Parent.java:918) at javafx.scene.layout.Region.prefHeight(Region.java: 1438) at com.sun.javafx.scene.control.skin.TableHeaderRow.c omputePrefHeight(TableHeaderRow.java:344) at com.sun.javafx.scene.control.skin.TableHeaderRow.c omputeMinHeight(TableHeaderRow.java:339) at javafx.scene.Parent.minHeight(Parent.java:946) at javafx.scene.layout.Region.minHeight(Region.java:1 404) at javafx.scene.control.SkinBase.computeMinHeight(Ski nBase.java:254) at javafx.scene.control.Control.computeMinHeight(Cont rol.java:485) at javafx.scene.Parent.minHeight(Parent.java:946) at javafx.scene.layout.Region.minHeight(Region.java:1 404) at javafx.scene.layout.Region.computeChildMinAreaHeig ht(Region.java:1700) at javafx.scene.layout.Region.getMaxAreaHeight(Region .java:1981) at javafx.scene.layout.Region.computeMaxMinAreaHeight (Region.java:1850) at javafx.scene.layout.HBox.computeMinHeight(HBox.jav a:419) at javafx.scene.Parent.minHeight(Parent.java:946) at javafx.scene.layout.Region.minHeight(Region.java:1 404) at javafx.scene.layout.AnchorPane.computeHeight(Ancho rPane.java:297) at javafx.scene.layout.AnchorPane.computeMinHeight(An chorPane.java:246) at javafx.scene.Parent.minHeight(Parent.java:946) at javafx.scene.layout.Region.minHeight(Region.java:1 404) at javafx.scene.layout.Region.computeChildMinAreaHeig ht(Region.java:1700) at javafx.scene.layout.Region.getMaxAreaHeight(Region .java:1981) at javafx.scene.layout.Region.computeMaxMinAreaHeight (Region.java:1850) at javafx.scene.layout.HBox.computeMinHeight(HBox.jav a:419) at javafx.scene.Parent.minHeight(Parent.java:946) at javafx.scene.layout.Region.minHeight(Region.java:1 404) at javafx.scene.layout.Region.computeChildMinAreaHeig ht(Region.java:1700) at javafx.scene.layout.VBox.getAreaHeights(VBox.java: 440) at javafx.scene.layout.VBox.computeContentHeight(VBox .java:522) at javafx.scene.layout.VBox.computeMinHeight(VBox.jav a:400) at javafx.scene.Parent.minHeight(Parent.java:946) at javafx.scene.layout.Region.minHeight(Region.java:1 404) at javafx.scene.layout.Region.computeChildMinAreaHeig ht(Region.java:1700) at javafx.scene.layout.VBox.getAreaHeights(VBox.java: 440) at javafx.scene.layout.VBox.computeContentHeight(VBox .java:522) at javafx.scene.layout.VBox.computeMinHeight(VBox.jav a:400) at javafx.scene.Parent.minHeight(Parent.java:946) at javafx.scene.layout.Region.minHeight(Region.java:1 404) at javafx.scene.layout.Region.computeChildPrefAreaHei ght(Region.java:1765) at javafx.scene.layout.VBox.getAreaHeights(VBox.java: 446) at javafx.scene.layout.VBox.computeContentHeight(VBox .java:522) at javafx.scene.layout.VBox.computePrefHeight(VBox.ja va:421) at javafx.scene.Parent.prefHeight(Parent.java:918) at javafx.scene.layout.Region.prefHeight(Region.java: 1438) at javafx.scene.layout.AnchorPane.computeHeight(Ancho rPane.java:297) at javafx.scene.layout.AnchorPane.computePrefHeight(A nchorPane.java:254) at javafx.scene.Parent.prefHeight(Parent.java:918) at javafx.scene.layout.Region.prefHeight(Region.java: 1438) at javafx.scene.layout.Region.minHeight(Region.java:1 406) at com.sun.javafx.scene.control.skin.ScrollPaneSkin.c omputeScrollNodeSize(ScrollPaneSkin.java:917) at com.sun.javafx.scene.control.skin.ScrollPaneSkin.l ayoutChildren(ScrollPaneSkin.java:791) at javafx.scene.control.Control.layoutChildren(Contro l.java:574) at javafx.scene.Parent.layout(Parent.java:1076) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Parent.layout(Parent.java:1082) at javafx.scene.Scene.doLayoutPass(Scene.java:576) at javafx.scene.Scene$ScenePulseListener.pulse(Scene. java:2386) at com.sun.javafx.tk.Toolkit$3.run(Toolkit.java:322) at com.sun.javafx.tk.Toolkit$3.run(Toolkit.java:320) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:32 0) at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:3 49) at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(Qua ntumToolkit.java:479) at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(Qua ntumToolkit.java:460) at com.sun.javafx.tk.quantum.QuantumToolkit$13.run(Qu antumToolkit.java:327) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run( InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._runLoop(Nativ e Method) at com.sun.glass.ui.win.WinApplication.access$300(Win Application.java:39) at com.sun.glass.ui.win.WinApplication$4$1.run(WinApp lication.java:112) at java.lang.Thread.run(Thread.java:744) 

这里注意到,将在下一个版本中修复。

https://javafx-jira.kenai.com/browse/RT-36052

由于这个问题仍然没有真正解决[JavaFX 8u11]并且因为需要一个帐户才能查看JIRA线程,所以我将在这里添加当前的workarround。 这个解决方案对我来说完美无缺,但请注意它已被删除,这意味着可以通过下一次更新突然删除该方法。

@ ryvantage(我会直接评论,但我仍有<50声望):

此链接需要登录。 – ryvantage 7月8日凌晨2点11分

使用像“tableC”这样的TableColumn变量,您可以执行以下操作:

 tableC.impl_setReorderable(false); 

这里还介绍了: 如何防止TableView在javaFX 8中重做TableColumn?