尝试找到Centering Text on a Button with Offset的解决方案后,我现在正在执行一个自定义组件。 我们的目标是制作一个按钮式组件,其一侧有一个图标,中间文本则填充按钮的其余部分。所有孩子的设置状态与父母相同
该组件包含两个标签/按钮来显示图标和文本。他们都有一个背景图片,在CSS中定义。
的CSS看起来像这样为图标,并用交换图像作为背景的文本文本
#button-icon-cancel{
-fx-font-family: "Arial";
-fx-padding: 0,0,0,0;
-fx-background-color: transparent;
-fx-font-size: 28px;
-fx-graphic: url('images/button/cancel.png');
}
#button-icon-cancel:pressed{
-fx-graphic: url('images/button/cancel-pressed.png');
}
的图像由SETID()加载。目前,这两个组件在传递到舞台之前都会添加到Panel中。它们包含一个用于处理的OnClickEvent。
我们的实际问题
我怎样才能做到这一点,如果单击一个组件,另一种是获取:从CSS压制呢?
- 添加ClickEvent该小组正在做什么(无论是标签/按钮就点击)
- 添加他们都到HBox中,添加事件和hbox的工作,在这方面,我可以点击组件和事件被触发,但是:按下的状态仅适用于您单击的组件。
是否有可能给所有孩子的通知,他们应该表现得像他们被按下?由于我们有很多小图标,但只有一个文本背景,因此在整个事物上放置一个Label会造成很多不必要的浪费图像空间。如果不是所有的css一次被改变,这也会导致改变字体颜色的问题(由于标签没有注意到按钮被按下,带有.setMouseTransparent(true)
的标签按钮解决方案不会改变文本标签的字体颜色)