如何在单击按钮的JavaFX上删除展开效果?

如何在单击按钮的JavaFX上删除展开效果?,java,css,button,javafx-2,fxml,Java,Css,Button,Javafx 2,Fxml,单击JavaFX按钮时,如何消除小的扩展效果?还有,我怎样才能使它像菜单按钮一样工作(当我按下它以保持聚焦状态,直到我按下另一个“菜单”按钮)。有没有办法将节点分组到同一个焦点中?如果您不喜欢默认的焦点。否则,请使用代码或图像解释小扩展效果。 制作菜单。 或用于对按钮进行分组,并使其行为类似于菜单。 通过说“保持聚焦状态”,我想你指的是“选择/切换状态”,而不是聚焦状态。点击按钮后,按钮仍处于聚焦状态。三个问题,一个价格;-) 单击JavaFX按钮时,如何消除小的扩展效果 当你点击按钮时,它有焦

单击JavaFX按钮时,如何消除小的扩展效果?还有,我怎样才能使它像菜单按钮一样工作(当我按下它以保持聚焦状态,直到我按下另一个“菜单”按钮)。有没有办法将节点分组到同一个焦点中?

如果您不喜欢默认的焦点。否则,请使用代码或图像解释小扩展效果。
制作菜单。
或用于对按钮进行分组,并使其行为类似于菜单。

通过说“保持聚焦状态”,我想你指的是“选择/切换状态”,而不是聚焦状态。点击按钮后,按钮仍处于聚焦状态。

三个问题,一个价格;-)

单击JavaFX按钮时,如何消除小的扩展效果

当你点击按钮时,它有焦点,当它有焦点时,它被焦点环包围,这使得它稍微大一点。这种效果是通过css触发的

默认css位于JavaFX运行时安装的jfxrt.jar中的caspian.css中。 相关摘录如下:

.button {
    -fx-skin: "com.sun.javafx.scene.control.skin.ButtonSkin";
    -fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color;
    -fx-background-insets: 0 0 -1 0, 0, 1, 2;
    -fx-background-radius: 5, 5, 4, 3;
。。。 }

要消除轻微的扩展效果,请创建自己的样式表。在样式表中,将其指定给场景,并将“聚焦”和“未聚焦”按钮的背景插入和半径设置为相同的值。下面是一个关于JavaFXCSS和非常有用的JavaFXCSS的例子

如何使它像菜单按钮一样工作(当我按下它以保持聚焦状态,直到按下另一个“菜单”按钮)

我不太明白这个问题——这是按钮的默认行为。也许你把焦点和手臂状态混在一起了,你真的想要一个

有没有办法将节点分组到同一个焦点


目前还没有安装到平台上。您可以为布局窗格编写自己的FocusModel类,该类可以记住窗格中具有焦点的最后一个控件,并在窗格恢复焦点或类似情况时重新分配该控件的焦点。这将是自定义代码。您需要使用的概念包括节点的focus属性、node requestFocus api(有时通过在Platform.runLater中执行以确保覆盖默认的焦点处理而产生延迟)以及以下事实(我认为)默认的焦点顺序取决于父对象中子对象的顺序。

问题1和2的类似答案:我不是javafx方面的专家,但是如果javafx和html之间的css规范相似(如果不相同的话),那么您可以使用*:focused将所有内容分组到focus模式下。。。或者至少我们在网页上就是这么做的
.button:focused {
    -fx-color: -fx-focused-base;
    -fx-background-color: -fx-focus-color, -fx-outer-border, -fx-inner-border, -fx-body-color;
    -fx-background-insets: -1.4, 0, 1, 2;
    -fx-background-radius:  6.4, 5, 4, 3;
}