有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何删除点击按钮的JavaFX上的扩展效果?

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


共 (2) 个答案

  1. # 1 楼答案

    Style your own favorite button如果您不喜欢默认的。否则,请使用代码或图像解释小扩展效果
    Use Menu and MenuItems来制作菜单
    或者使用Toggle Button对按钮进行分组,并使其行为类似于菜单
    通过说“保持聚焦状态”,我想你指的是“选择/切换状态”,而不是聚焦状态。因为点击按钮后,按钮仍处于聚焦状态

  2. # 2 楼答案

    三个问题的代价是一个;-)

    How can I remove the small expand effect when I click on a JavaFX button?

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

    默认css是在里海。在jfxrt中找到css。JavaFX运行时安装中的jar。 相关摘录如下:

    .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;
    

    。。。 }

    .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;
    }
    

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

    how can I make it work like an menu button (when I press it to remain in focused state untill I press another "menu" button).

    我不太明白这个问题——这是按钮的默认行为。也许你混合了焦点和arm状态,实际上想要一个ToggleButton

    Is there a way to group nodes into the same focus?

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