画面上でドラッグできるようにしたいさまざまな長方形ノードを描画しています。
私のコードは現在これです:
stage = new Stage {
scene = new Scene(1100, 700) {
root = new BorderPane {
center = new Group() {
fill = Color(0.22, 0.22, 0.22, 1.0)
children = List(
new Rectangle with Draggable {
x = 100.0
y = 100.0
width = 80.0
height = 50.0
arcWidth = 7.5
arcHeight = 7.5
fill = Color(0.15, 0.15, 0.15, 1.0)
onMousePressed = (event: MouseEvent) => {
draggablePerformPress(event)
}
onMouseDragged = (event: MouseEvent) => {
draggablePerformDrag(event)
}
}
)
}
}.delegate
}
}
Draggableトレイトは、draggablePerformPress()メソッドとdraggablePerformDrag()メソッドを提供します。これは、基本的にtranslateXとtranslateYが設定される場所です。
Rectangleノードをクリックしてドラッグしても、移動しません。ただし、BorderPaneを削除し、Groupオブジェクトをシーンのルートにすると、ドラッグは機能します。onMouseイベントがトリガーされていることを確認したので、何らかの理由でBorderPaneがtranslateX / Yをオーバーライドしているに違いありません...理由がわからず、それを防ぐ方法もわかりません。