2
我想製作一個可拖動的彈出控件,它獨立於它的父窗口,並且沒有系統的標題欄。JavaFX 2:可拖動的彈出工具窗口?
我試圖是重寫以移動基於節點上鼠標事件未修飾階段,請參閱下面的代碼可拖動板JavaFX的例子。不幸的是,這似乎不能正常工作,它不光滑,並且在多屏幕上不規則地跳過屏幕。我讀過一些其他人使用類似的方法,但是這是目前唯一的方法,或者是否有人找到一個好的解決方案? 謝謝,
private Node makeDraggable(final Node node) {
final DragContext dragContext = new DragContext();
final Node wrapGroup = node;
wrapGroup.addEventFilter(
MouseEvent.MOUSE_PRESSED,
new EventHandler<MouseEvent>() {
public void handle(final MouseEvent mouseEvent) {
dragContext.mouseAnchorX = mouseEvent.getX();
dragContext.mouseAnchorY = mouseEvent.getY();
dragContext.initialTranslateX =
stage.getX();
dragContext.initialTranslateY =
stage.getY();
}
});
wrapGroup.addEventFilter(
MouseEvent.MOUSE_DRAGGED,
new EventHandler<MouseEvent>() {
public void handle(final MouseEvent mouseEvent) {
stage.setX(
dragContext.initialTranslateX
+ mouseEvent.getX()
- dragContext.mouseAnchorX);
stage.setY(
dragContext.initialTranslateY
+ mouseEvent.getY()
- dragContext.mouseAnchorY);
dragContext.initialTranslateX =
stage.getX();
dragContext.initialTranslateY =
stage.getY();
}
});
return node;
}
這在多個屏幕上也很棒!非常感謝。 – JavaMonkey22
還有一件事,你也有一個makeResizable?或者你能告訴我在哪裏發現了,謝謝! – JavaMonkey22
我寫了。我沒有編寫相應的調整大小函數 - 請查看[ensemble app source](http://www.oracle.com/technetwork/java/javafx/samples/index.html)。 – jewelsea