在我的应用程序中尝试将自定义控件添加到 BorderPane 时,我遇到了 JavaFX 问题。只要我只是将我的控件(编辑器)设置为内容(使用 setCenter),它就可以正常工作并接收输入事件(键盘和鼠标)。但是,当我尝试将其包装到 TabPane 和 Tab 控件中时,该控件不再接收任何事件并且似乎无法聚焦。我知道控件仍然存在于场景中,因为您仍然可以看到它。你只是无法与之互动。
以下代码是我现在正在使用的代码:
class EditorScene extends BorderPane {
def setup() {
// Default editor
val tab = new javafx.scene.control.Tab("New File")
val editor = new Editor(this)
tab.setContent(editor)
val tabs = new TabPane()
tabs.getTabs().add(tab)
setCenter(tabs)
//setCenter(editor)
}
setup()
}
在 setup() 的最后几行中,当我使用第二行 (setCenter(editor)) 时,它按预期工作,接收事件等。当我使用上面的行 (setCenter(tabs)) 时,它显然没有收到任何事件;至少不调用事件处理程序。
我可能忽略了一些非常明显的东西,但我似乎找不到错误。有任何想法吗?我会很感激任何提示。