2014-06-24 62 views

回答

9

解决方案

替换您的Group使用与Pane事情会表现类似,除非你将获得使用CSS做的东西一样风格的窗格的背景的能力。

背景

如果你想风格的CSS父节点,使用的东西从Region派生:

地区是所有基于节点的JavaFX UI控件的基类,和所有布局容器。它是一个可调整大小的Parent节点,可以从CSS进行样式化。它可以有多个背景和边框。它旨在支持与JavaFX相关的尽可能多的背景和边框CSS3规范。

组A被设计成是一个非常轻量的父,这将产生最小处理和存储开销,因此它supports only very minimal CSS properties(并且不支持CSS背景)。另一方面,它提供了广泛的CSS样式功能。

A Pane是一个具体的Region子类,其行为最像一个组(例如,它不会执行隐式布局,而是手动布局窗格中的节点)。

替代的解决方案

此替代的解决方案允许将“背景”节点添加到组中。它在代码中工作,而不是CSS。

添加到组中的项目由绘画算法分层,从后到前。因此,添加一个彩色矩形作为组中的第一项,矩形将有效地形成组的背景。

+0

+1为背景! – ItachiUchiha

+0

之前我曾考虑过您的备用解决方案,但我认为使用Pane可以更轻松地处理组件。非常感谢! – NovoBook

1

其实,我在javaFx中说一切皆有可能,因为它们够酷。

所以假设你Group是组和你想改变Background

ColorInput ci = new ColorInput(group.getLayoutX(), 
      group.getLayoutY(), 
      group.getLayoutBounds().getWidth(), 
      group.getLayoutBounds().getHeight(), 
      Color.WHITE); 
    group.setEffect(ci); 

kabooommm !!!!我有一个白色的背景!

Color.RED); //i change the last part to red 
    group.setEffect(ci); 

kaboomm! kabooom!我有红色背景

fyi:这会导致你一些关系问题。

希望它有帮助

+0

这个'背景'似乎勾画了组中的所有其他对象... – Sman789