我有一个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));
}
}
答案 0 :(得分:0)
创建一个Label
对象,然后使用setText
方法为图像添加文本和setGraphics
方法。其余应与“文本”或“图像”相同。