如何从JavaFX2.0的TableView中删除空行

如何从JavaFX2.0的TableView中删除空行,java,css,tableview,javafx-2,Java,Css,Tableview,Javafx 2,我一直在尝试从表视图中删除空行,但我无法使用css(我在一些博客中读到的css)做到这一点 这里的css就是我在上面应用的 /------------------------------------------------- .table-row-cell:empty { -fx-background-color: white; } .table-row-cell:empty .table-cell { -fx-border-width: 0px; } SEVERE: jav

我一直在尝试从表视图中删除空行,但我无法使用css(我在一些博客中读到的css)做到这一点

这里的css就是我在上面应用的 /-------------------------------------------------

.table-row-cell:empty {
    -fx-background-color: white;
}

.table-row-cell:empty .table-cell {
    -fx-border-width: 0px;
}
SEVERE: javafx.scene.control.Control loadSkinClass Failed to load skin 'com.sun.javafx.scene.control.skin.TableRowSkin' for control TableView@125ff34[styleClass=table-view table-row-cell]
java.lang.IllegalArgumentException: argument type mismatch
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at javafx.scene.control.Control.loadSkinClass(Unknown Source)
    at javafx.scene.control.Control.impl_cssSet(Unknown Source)
    at javafx.scene.Node.impl_cssSet(Unknown Source)
    at com.sun.javafx.css.StyleHelper.transitionToState(Unknown Source)
    at javafx.scene.Node.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.control.Control.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.Node.processCSS(Unknown Source)
    at javafx.scene.Node.processCSS(Unknown Source)
    at javafx.scene.Scene.doCSSPass(Unknown Source)
    at javafx.scene.Scene.access$2900(Unknown Source)
    at javafx.scene.Scene$ScenePulseListener.pulse(Unknown Source)
    at com.sun.javafx.tk.Toolkit.firePulse(Unknown Source)
    at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(Unknown Source)
    at com.sun.javafx.tk.quantum.QuantumToolkit$8.run(Unknown Source)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$100(Unknown Source)
    at com.sun.glass.ui.win.WinApplication$2$1.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:722)

SEVERE: javafx.scene.control.Control impl_processCSS The -fx-skin property has not been defined in CSS for TableView@125ff34[styleClass=table-view table-row-cell]
/-------------------------------------------------

.table-row-cell:empty {
    -fx-background-color: white;
}

.table-row-cell:empty .table-cell {
    -fx-border-width: 0px;
}
SEVERE: javafx.scene.control.Control loadSkinClass Failed to load skin 'com.sun.javafx.scene.control.skin.TableRowSkin' for control TableView@125ff34[styleClass=table-view table-row-cell]
java.lang.IllegalArgumentException: argument type mismatch
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at javafx.scene.control.Control.loadSkinClass(Unknown Source)
    at javafx.scene.control.Control.impl_cssSet(Unknown Source)
    at javafx.scene.Node.impl_cssSet(Unknown Source)
    at com.sun.javafx.css.StyleHelper.transitionToState(Unknown Source)
    at javafx.scene.Node.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.control.Control.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.Node.processCSS(Unknown Source)
    at javafx.scene.Node.processCSS(Unknown Source)
    at javafx.scene.Scene.doCSSPass(Unknown Source)
    at javafx.scene.Scene.access$2900(Unknown Source)
    at javafx.scene.Scene$ScenePulseListener.pulse(Unknown Source)
    at com.sun.javafx.tk.Toolkit.firePulse(Unknown Source)
    at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(Unknown Source)
    at com.sun.javafx.tk.quantum.QuantumToolkit$8.run(Unknown Source)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$100(Unknown Source)
    at com.sun.glass.ui.win.WinApplication$2$1.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:722)

SEVERE: javafx.scene.control.Control impl_processCSS The -fx-skin property has not been defined in CSS for TableView@125ff34[styleClass=table-view table-row-cell]
但是我得到了错误

/------------------------------------

.table-row-cell:empty {
    -fx-background-color: white;
}

.table-row-cell:empty .table-cell {
    -fx-border-width: 0px;
}
SEVERE: javafx.scene.control.Control loadSkinClass Failed to load skin 'com.sun.javafx.scene.control.skin.TableRowSkin' for control TableView@125ff34[styleClass=table-view table-row-cell]
java.lang.IllegalArgumentException: argument type mismatch
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at javafx.scene.control.Control.loadSkinClass(Unknown Source)
    at javafx.scene.control.Control.impl_cssSet(Unknown Source)
    at javafx.scene.Node.impl_cssSet(Unknown Source)
    at com.sun.javafx.css.StyleHelper.transitionToState(Unknown Source)
    at javafx.scene.Node.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.control.Control.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.Node.processCSS(Unknown Source)
    at javafx.scene.Node.processCSS(Unknown Source)
    at javafx.scene.Scene.doCSSPass(Unknown Source)
    at javafx.scene.Scene.access$2900(Unknown Source)
    at javafx.scene.Scene$ScenePulseListener.pulse(Unknown Source)
    at com.sun.javafx.tk.Toolkit.firePulse(Unknown Source)
    at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(Unknown Source)
    at com.sun.javafx.tk.quantum.QuantumToolkit$8.run(Unknown Source)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$100(Unknown Source)
    at com.sun.glass.ui.win.WinApplication$2$1.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:722)

SEVERE: javafx.scene.control.Control impl_processCSS The -fx-skin property has not been defined in CSS for TableView@125ff34[styleClass=table-view table-row-cell]
/-------------------------------------------------------------

.table-row-cell:empty {
    -fx-background-color: white;
}

.table-row-cell:empty .table-cell {
    -fx-border-width: 0px;
}
SEVERE: javafx.scene.control.Control loadSkinClass Failed to load skin 'com.sun.javafx.scene.control.skin.TableRowSkin' for control TableView@125ff34[styleClass=table-view table-row-cell]
java.lang.IllegalArgumentException: argument type mismatch
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
    at javafx.scene.control.Control.loadSkinClass(Unknown Source)
    at javafx.scene.control.Control.impl_cssSet(Unknown Source)
    at javafx.scene.Node.impl_cssSet(Unknown Source)
    at com.sun.javafx.css.StyleHelper.transitionToState(Unknown Source)
    at javafx.scene.Node.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.control.Control.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.Parent.impl_processCSS(Unknown Source)
    at javafx.scene.Node.processCSS(Unknown Source)
    at javafx.scene.Node.processCSS(Unknown Source)
    at javafx.scene.Scene.doCSSPass(Unknown Source)
    at javafx.scene.Scene.access$2900(Unknown Source)
    at javafx.scene.Scene$ScenePulseListener.pulse(Unknown Source)
    at com.sun.javafx.tk.Toolkit.firePulse(Unknown Source)
    at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(Unknown Source)
    at com.sun.javafx.tk.quantum.QuantumToolkit$8.run(Unknown Source)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$100(Unknown Source)
    at com.sun.glass.ui.win.WinApplication$2$1.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:722)

SEVERE: javafx.scene.control.Control impl_processCSS The -fx-skin property has not been defined in CSS for TableView@125ff34[styleClass=table-view table-row-cell]
有人知道怎么解决吗?或者以任何其他方式删除空行


提前谢谢

您的css与JavaFX2.1一起工作。请尝试下一步:

  • 更新至JavaFX2.1
  • 从css文件中删除除这些类以外的所有内容
这就是解决方案: 在css文件中添加以下内容:

.table-row-cell:empty:odd, .table-row-cell:empty:even {
    -fx-background-color: transparent;
}
为我测试和工作


非常感谢@sergey我会尝试你所说的,如果我遇到任何问题,我会想出办法。我仍然会遇到同样的错误,我认为这是因为我在其他类中创建了没有场景的表视图,我从那里返回窗格并在主类中设置样式。你能解释一下我该怎么做吗?我们鼓励链接到外部资源,但请在链接周围添加上下文,这样你的其他用户就会知道它是什么以及为什么会在那里。始终引用重要链接中最相关的部分,以防无法访问目标站点或永久脱机。