我有一個可拖動的按鈕類,它在我的屏幕上顯示一個按鈕,可以用鼠標拖動來移動。然而,每個可拖動的按鈕都在單獨的階段 - >場景 - >窗格 - >節點中,以便分別顯示每個按鈕。 如何在顯示多個場景/節點時不打開多個階段
有沒有一種方法可以在我的屏幕上添加多個可拖動的按鈕,而無需打開數百萬個階段?
我想也許有一個透明的舞臺大小的屏幕? 但是如果我一次只能顯示一個場景,我不會看到如何工作。
//Draggable button class
import javafx.scene.control.Button;
import javafx.stage.Stage;
public class DraggableButton extends Button{
private double xOffset = 0;
private double yOffset = 0;
public DraggableButton(Stage stage){
this.setOnMousePressed(event -> {
xOffset = event.getSceneX();
yOffset = event.getSceneY();
});
this.setOnMouseDragged(event -> {
stage.setX(event.getScreenX() - xOffset);
stage.setY(event.getScreenY() - yOffset);
});
}
}
//Draggable button object
import javafx.geometry.Bounds;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
public class ButtonDragV2 {
private ButtonCollection btnCollection = ButtonCollection.getInstance();
private Stage stage;
private DraggableButton btn;
private VBox root;
private Scene scene;
private ButtonStacker bs;
public ButtonDragV2(){
stage = new Stage();
btn = new DraggableButton(stage);
root = new VBox();
scene = new Scene(root);
bs = new ButtonStacker();
stage.initStyle(StageStyle.UNDECORATED);
root.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
btn.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
btn.setPrefSize(100,100);
VBox.setVgrow(btn, Priority.ALWAYS);
root.getChildren().add(btn);
...
stage.show();
btnCollection.addButton(this);
{
{