【问题标题】:How to do a mouse click event on tableview JavaFX如何在tableview JavaFX上执行鼠标单击事件
【发布时间】:2019-03-13 19:04:31
【问题描述】:

我有一个带有模型类的表格视图。表格视图显示了用户可以加入的所有组,我希望在用户单击的 tableView 的行上有一个 mouseclick 事件。这将更改标签上的文本以说明组中是否有空间。

我遇到的问题是“原因:javafx.fxml.LoadException:解析 onMouseClicked='#clickItem' 时出错,事件处理程序不在命名空间中或脚本中有错误。”我正在使用场景构建器,并已将方法声明为“单击鼠标时”,但仍然出现错误。

如果您能告诉我一个能够执行此操作或修复错误的解决方案,将会很有帮助。提前致谢。

public void showAvailability(MouseEvent event) { 

    selected = groupsTable.getSelectionModel().getSelectedItem();
    boolean checkAvailability  = checkSpaceInGroup(selected);

    if(checkAvailability){
        availabilityStatus.setText("Space in Group");
        availabilityPane.setStyle("-fx-background-color: #" + "388e3c ");
    }
    else{
        availabilityStatus.setText("NO SPACE");
        availabilityPane.setStyle("-fx-background-color: #" + "ffcdd2 ");

    }
}

【问题讨论】:

  • 我建议改为听选择模型。 groupsTable.getSelectionModel().selectedItemProperty().addListener((o, oldSelection, newSelection) -> { /* ... */ });

标签: java javafx tableview


【解决方案1】:

你可能导入了错误的库:(不看整个代码就不确定)

import java.awt.event.??

代替:

import javafx.event.??

但是,您可以在控制器类上从 Initialize 方法创建事件,如下所示:

groupsTable.setOnMouseClicked((MouseEvent event) -> { 
 //your code goes here
}

在这种情况下,使用以下方式导入 MouseEvent:

import javafx.scene.input.MouseEvent;

希望对你有帮助!

【讨论】:

  • 你先生是个传奇!你是对的,我确实 import import java.awt.event.??我已经在初始化方法上创建了事件并且它起作用了。谢谢!!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-17
相关资源
最近更新 更多