- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个BorderPane
。在此 Pane 中,我将 HBox
设置为顶部有几个控件。在中心我有e SplitPane
有两个 Canvas 。我想让鼠标移动到 BorderPane
当它从SplitPane
冒泡时。
如果我使用 splitPane.setOnMouseMoved(...)
我正确地了解了该事件。然而BorderPane.setOnMouseMoved(...)
仅当鼠标悬停在顶部上时才有效(如果找到 HBox
)。
看起来像SplitPane
正在消耗该事件。谁能证实这一点吗?如果是这样,我该如何让偶数冒泡?请注意,当我应用过滤器时,偶数会在 BorderPane
处检测到。水平正在下降。
TIA
最佳答案
大多数(如果不是全部)皮肤实现都从 SkinBase
延伸。默认情况下消耗所有鼠标事件。您可以通过 protected consumeMouseEvents(boolean)
进行配置。方法。由于该方法受到保护,您必须对皮肤进行子类化(或使用反射)才能访问它:
package com.example;
import javafx.scene.control.SplitPane;
import javafx.scene.control.skin.SplitPaneSkin;
public class MySplitPaneSkin extends SplitPaneSkin {
public MySplitPaneSkin(SplitPane control) {
super(control);
consumeMouseEvents(false);
}
}
外观类在 JavaFX 9 中成为公共(public) API。如果您使用 JavaFX 8,则需要扩展内部外观类。
然后您将设置 SplitPane
的外观。
SplitPane pane = ...;
pane.setSkin(new MySplitPaneSkin(pane));
还可以设置皮肤using CSS通过 -fx-skin
属性:
.split-pane {
-fx-skin: com.example.MySplitPaneSkin;
}
请注意,如上所述使用 CSS 将为样式表覆盖的所有 SplitPane
设置外观(除非您更改其样式类)。您可能希望通过为您的 SplitPane
提供一个 ID 并使用 #id { ... }
来使其更加具体。
此外,查看 JavaFX 11.0.2 中的 SplitPaneSkin
实现,每个分隔符中添加了一个事件处理程序,该处理程序消耗所有事件。由于这是私有(private)实现细节,您无法更改此行为。换句话说,即使使用上面的代码,当鼠标位于分隔线上方时,鼠标事件也不会冒泡到 BorderPane
。
要考虑的另一件事是 SplitPane
中的任何控件也可能会消耗鼠标事件。您需要为每个此类子控件应用与上述类似的内容。
关于JavaFX SplitPane 不会冒泡鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54736344/
当我有一个透明的 SplitPane 时,设置 pickOnBounds=false 不起作用,我无法单击拆分 Pane 后面的按钮。我有一个带有 pickOnBounds=false 的透明 VBo
我想创建一个像这样的分割面板: 我怎样才能做到这一点。当我添加选项卡时,我只能将它们添加到以下位置:上、下、右、左。 这就是我所拥有的: 我该怎么做? 最佳答案 左侧面板应使用CardLayout
我有一个BorderPane 。在此 Pane 中,我将 HBox 设置为顶部有几个控件。在中心我有e SplitPane有两个 Canvas 。我想让鼠标移动到 BorderPane当它从Split
有没有办法让分割 Pane 中的分隔线透明? 我尝试了以下方法 .split-pane *.split-pane-divider { -fx-padding: 0 1 0 1; } 但它不起作用。 另
我尝试实现 here 中的标准示例,看起来像这样: SplitPane sp = new SplitPane(); final StackPane sp1 = new StackPane(); sp1
我一直在java swing中使用jsplit Pane ,我试图在一个主框架中设置水平和垂直分割 Pane ,首先将主框架划分为左侧面板和右侧面板,然后将右侧面板分为底部和右侧面板顶部面板。我成功地
这是一个交叉帖子:http://mail.openjdk.java.net/pipermail/openjfx-dev/2015-January/016437.html 有时当我设置 SplitPan
如何实现整个 SplitPane 的比例调整? public class JfxSplitPaneTest extends Application { @Override public
我一直在使用 JPanels 等来构建我的 GUI。我现在工作的地方他们使用 SWT 来构建他们的 GUI。我有一个复合 Material ,我添加了一个窗框,根据模板的某些属性将窗框垂直或水平分割。
我已经对这个主题做了一些研究并找到了 a post that could’ve been relevant , 如果它只包含我想要的那种答案。我想移除 SplitPane 周围的边框,您在彼此中创建的
我的 .fxml 文件中有许多 Pane (这是我的 fxml 的早期版本: Javafx : SplitPane resize children )现在我想修复顶部分割 Pane 中的前两个元素我的
我喜欢一个 .fxml 文件,我在其中添加了一些 TitledPane,但我无法在应用程序中调整它们的大小。这是代码:
在底部,我有一个 AnchorPane,然后是一个 SplitPane。在左侧 Pane 中,我有一个 listView,根据所选的列表元素,右侧 Pane 会显示相应的内容。我这样做的方法是重叠 A
我有以下代码: public class JavaFxApplication2 extends Application { @Override public void start(St
我有一个 SplitPane,我需要将布局划分为 25% 和 75%。另外,我需要禁止在 25% 分割后向右侧拖动。但是我可以在 25% 的空间内拖动到任何程度。请帮忙。 最佳答案 SplitPane
我所追求的当前布局只是一个水平分割 Pane ,其中左侧是复选框,右侧将输出。在用户检查所有想要的项目后,我最终将在左侧添加一个提交按钮,并将结果显示在右侧。当前的问题是我什至无法显示背景颜色,并且复
自从从以前的 JavaFX 2.0 版本更新到 JavaFX 2.0 b36(Windows SDK(32 位)+ Netbeans 插件)后,SplitPane 控件不再按预期工作。 分隔线无法移动
我需要在应用程序启动时加载 JavaFX TreeView 数据。问题是节点lookup()方法总是返回null。 代码 public class Main extends Application {
我不知道如何在 JavaFX 8 SplitPane 上监听“Divider Repositioned”事件。这是一个简单的工作应用程序,只需要添加事件监听器。有人可以帮助我指出正确的方向吗? pub
我在我的 JSplitPane 中设置了 setOneTouchExpandable(true) 和 setEnabled(false) 以允许用户仅向左或向右展开。但我真正想要的是让左侧面板向左折叠
我是一名优秀的程序员,十分优秀!