Hallo zusammen,
ich merke gerade dass ich seit geraumer Zeit mit FX keine Berührungspunkte mehr hatte und versuche vergeblich ein Pane per Drag&Drop in ein Clipboard zu kopieren. Für mein Beispiel benutze ich den Scene Builder daher die @FXML Annotationen. Also Strings hin und her zu schieben per Drag&Drop ist mit den Tutorials kein Problem. Aber bei Pane, was eigentlich nichts anderes als ein Node ist, hört bei mir das Glück auf.
Mein eigentliches Ziel(Siehe Bild 1) das graue Pane welches sich in einer VBox befindet in die andere VBox(rotes und blaues Pane befinden sich dort) einzugliedern. Aber selbst das grundlegend scheitert. Jetzt bin ich nicht sicher ob nicht auf einem Holzweg bin und solche Geschichten nur mit einer Mausbewegung möglich sind. Wenn doch, ein simples Beispiel würde mir schon genügen.
Danke wieder im Voraus.
ich merke gerade dass ich seit geraumer Zeit mit FX keine Berührungspunkte mehr hatte und versuche vergeblich ein Pane per Drag&Drop in ein Clipboard zu kopieren. Für mein Beispiel benutze ich den Scene Builder daher die @FXML Annotationen. Also Strings hin und her zu schieben per Drag&Drop ist mit den Tutorials kein Problem. Aber bei Pane, was eigentlich nichts anderes als ein Node ist, hört bei mir das Glück auf.
Mein eigentliches Ziel(Siehe Bild 1) das graue Pane welches sich in einer VBox befindet in die andere VBox(rotes und blaues Pane befinden sich dort) einzugliedern. Aber selbst das grundlegend scheitert. Jetzt bin ich nicht sicher ob nicht auf einem Holzweg bin und solche Geschichten nur mit einer Mausbewegung möglich sind. Wenn doch, ein simples Beispiel würde mir schon genügen.
Danke wieder im Voraus.
Java:
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.scene.input.ClipboardContent;
import javafx.scene.input.DataFormat;
import javafx.scene.input.Dragboard;
import javafx.scene.input.MouseEvent;
import javafx.scene.input.TransferMode;
import javafx.scene.layout.Pane;
import javafx.scene.layout.VBox;
public class PrimaryController {
@FXML
Pane grey_panel;
@FXML
VBox vbox_1;
@FXML
public void onMouseDragOver_grey() {
System.out.println("DragoOver");
}
@FXML
public void onDragDetected_grey() {
grey_panel.setOnDragDetected(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent event) {
System.out.println("dadd");
Dragboard db = grey_panel.startDragAndDrop(TransferMode.MOVE);
DataFormat key = new DataFormat("Drag");
ClipboardContent content = new ClipboardContent();
content.put(key, grey_panel.getChildren());
db.setContent(content);
event.consume();
}
});
}
}