Можно ли отобразить изображение с текстом рядом с указателем при перетаскивании объекта? - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть 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));
   }
}

1 Ответ

0 голосов
/ 09 апреля 2019

Создайте объект Label, затем используйте метод setText для добавления текста и метод setGraphics для изображения.остальное должно совпадать с текстом или изображением.

...