一个价格的三个问题;-)
单击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;
Run Code Online (Sandbox Code Playgroud)
...}
.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;
}
Run Code Online (Sandbox Code Playgroud)
要删除轻微的扩展效果,请创建自己的样式表.在样式表中将其指定给场景,并将聚焦和未聚焦按钮的背景插图和半径设置为相同的值.这里是一个教程在JavaFX的CSS和不断有用的JavaFX CSS 参考指南.
如何让它像菜单按钮一样工作(当我按下它以保持聚焦状态时,直到我按下另一个"菜单"按钮).
我不太明白这个问题 - 这是按钮的默认行为.也许你正在混合焦点和手臂状态,实际上想要一个ToggleButton?
有没有办法将节点分组到同一个焦点?
目前还没有内置到平台上.您可以为布局窗格编写自己的FocusModel类,该布局窗格会记住窗格中具有焦点的最后一个控件,并在窗格获得焦点或类似内容时再次重新分配焦点.这将是自定义代码.您需要使用的概念是节点的焦点属性,节点requestFocus api(有时通过在Platform.runLater中执行延迟以确保您覆盖默认焦点处理)以及(我认为)默认焦点顺序取决于的事实根据父母的子女的顺序.
| 归档时间: |
|
| 查看次数: |
4781 次 |
| 最近记录: |