У меня есть TreeTableView
, и я хочу перетащить его элементы, показывая изображение и текст, который я определяю в Label
рядом с указателем мыши. Проблема в том, что метод dragDetected
принадлежит другому классу, из которого был определен Label
, и я не могу получить к нему доступ.
Вот два класса (я избавился от лишних частей):
public class Controller implements Initializable {
@FXML
private Label label;
@Override
public void initialize (URL url, ResourceBundle rb) {
// here I define and fill the TreeTableView
...
treeTableView.setRowFactory (new Factory());
...
}
}
public class Factory implements Callback
<TreeTableView <ClassDataType>, TreeTableRow <ClassDataType >> {
private void dragDetected (MouseEvent event, TreeTableRow <ClassDataType> row, TreeTableView <ClassDataType> tableTree) {
label.setText ("text"); // ERROR: label is not accessible
label.setGraphic (new ImageView (new Image ("image.png")));
WritableImage image = label.snapshot (new SnapshotParameters (), null);
db.setDragView (label.snapshot (new SnapshotParameters (), null));
}
}