Как сделать событие щелчка мыши на табличном представлении JavaFX - PullRequest
0 голосов
/ 13 марта 2019

У меня есть таблица с классом модели. Табличное представление показывает все группы, к которым пользователь может присоединиться, и я хотел бы иметь событие щелчка мышью в строке tableView, по которой пользователь щелкает. Это изменит текст на ярлыке, чтобы сказать, есть ли место в группе или нет.

Проблема, которую я получаю: «Причина: 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 ");

    }
}

1 Ответ

0 голосов
/ 13 марта 2019

Возможно, вы импортировали неверную библиотеку: (не уверен, не глядя на весь код)

import java.awt.event.??

вместо:

import javafx.event.??

Однако вы можете создать событие из вашей Initializeметод класса контроллера, например:

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

В этом случае MouseEvent импортируется с использованием:

import javafx.scene.input.MouseEvent;

Надеюсь, это поможет!

...