拖动对象时是否可以在指针旁边显示带有文本的图像?

时间:2019-04-09 06:59:59

标签: javafx javafx-8

我有一个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 :(得分:0)

创建一个Label对象,然后使用setText方法为图像添加文本和setGraphics方法。其余应与“文本”或“图像”相同。