如何在JavaFX中为Group布局添加背景颜色?

时间:2014-06-24 04:51:16

标签: css colors background javafx background-color

我需要在JavaFX中为组添加背景颜色。我试图用CSS添加它,但由于某种原因它没有用。 CSS适用于所有其他布局管理器,但不适用于Group。我该怎么办?

2 个答案:

答案 0 :(得分:11)

<强>解决方案

Group的使用情况替换为Pane,事情的行为会相似,但您将能够使用CSS来制作窗格背景样式等内容。

<强>背景

如果要使用CSS为父节点设置样式,请使用派生自Region的内容:

  

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

一个组被设计成一个非常轻量级的父级,它产生最小的处理和存储开销,因此它supports only very minimal CSS properties(并且不支持CSS背景)。

另一方面,

Regions提供了广泛的CSS样式功能。

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

替代解决方案

此备用解决方案允许您向组添加“背景”节点。它适用于代码,而不是CSS。

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

答案 1 :(得分: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:这会给你带来一些关系问题。

希望有所帮助