【问题标题】:Run a method if tab is clicked如果单击选项卡,则运行方法
【发布时间】:2019-08-06 21:28:29
【问题描述】:

我想在单击选项卡时运行一个函数。我尝试在我的 fxml 中执行此操作,但我认为 Tabs 没有可调用的 onAction 属性。

<Tab fx:id="Tab1" text="Tab1" onAction="#loadTab1"> 

</Tab>

所以我在运行应用程序时收到此错误:

Caused by: java.lang.UnsupportedOperationException: Cannot determine type for property.

【问题讨论】:

  • 您希望在 单击 时发生一些事情,但收听 单击 对您来说不是个好主意? ;) 如果您在代码方面需要帮助,请附上您的代码。 Edit您的问题并添加minimal reproducible example
  • 也许我不够清楚。但正如我在问题中指出的那样,我想进行一个函数调用,在我的 fxml 中引用。使用 onAction 可能是个好主意,但 Tab 不支持。所以我只是期望有一个 onClick、onMouseCliked 或类似于该属性的东西,而不是 onAction。但我觉得没有必要提供一个可重复的例子。我认为没有它就足够了。
  • Tab 也不提供鼠标事件。它只是一个包含TabPane 所需数据的类,以确定如何设置它的后代以正确显示选项卡。不过有一个onSelectionChanged 属性。收听TabPanes 选择模型的selectedItem 属性可能会更好...
  • 你是对的fabian。这是迄今为止我能找到的唯一解决方案。这样我就知道何时选择和取消选择选项卡并结合isSelected() 函数。谢谢你们的帮助。

标签: javafx tabs fxml onactionexecuted


【解决方案1】:

注册选项卡选择的一个简单解决方案是:

Tab1.setOnSelectionChanged(e -> {
            System.out.println(Tab1.isSelected() ? "Tab1 is selected" : "Tab1 is not selected" );
        });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-05
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    相关资源
    最近更新 更多