• javafx drag


     public class EffectTest extends Application {
     @Override public void start(Stage stage) {
            stage.setTitle("Hello Drag And Drop");
    
            Group root = new Group();
            Scene scene = new Scene(root, 400, 200);
            scene.setFill(Color.LIGHTGREEN);
    
            final Text source = new Text(50, 100, "DRAG ME");
            source.setScaleX(2.0);
            source.setScaleY(2.0);
    
            final Text target = new Text(250, 100, "DROP HERE");
            target.setScaleX(2.0);
            target.setScaleY(2.0);
    
            source.setOnDragDetected((MouseEvent event) -> {
                /* drag was detected, start drag-and-drop gesture*/
                System.out.println("onDragDetected");
                
                /* allow any transfer mode */
                Dragboard db = source.startDragAndDrop(TransferMode.ANY);
                
                /* put a string on dragboard */
                ClipboardContent content = new ClipboardContent();
                content.putString(source.getText());
                db.setContent(content);
                
                event.consume();
            });
    
            target.setOnDragOver((DragEvent event) -> {
                /* data is dragged over the target */
                System.out.println("onDragOver");
                
                /* accept it only if it is  not dragged from the same node
                * and if it has a string data */
                if (event.getGestureSource() != target &&
                        event.getDragboard().hasString()) {
                    /* allow for both copying and moving, whatever user chooses */
                    event.acceptTransferModes(TransferMode.COPY_OR_MOVE);
                }
                
                event.consume();
            });
    
            target.setOnDragEntered((DragEvent event) -> {
                /* the drag-and-drop gesture entered the target */
                System.out.println("onDragEntered");
                /* show to the user that it is an actual gesture target */
                if (event.getGestureSource() != target &&
                        event.getDragboard().hasString()) {
                    target.setFill(Color.GREEN);
                }
                
                event.consume();
            });
    
            target.setOnDragExited((DragEvent event) -> {
                /* mouse moved away, remove the graphical cues */
                target.setFill(Color.BLACK);
                
                event.consume();
            });
            
            target.setOnDragDropped((DragEvent event) -> {
                /* data dropped */
                System.out.println("onDragDropped");
                /* if there is a string data on dragboard, read it and use it */
                Dragboard db = event.getDragboard();
                boolean success = false;
                if (db.hasString()) {
                    target.setText(db.getString());
                    success = true;
                }
                /* let the source know whether the string was successfully
                * transferred and used */
                event.setDropCompleted(success);
                
                event.consume();
            });
    
            source.setOnDragDone((DragEvent event) -> {
                /* the drag-and-drop gesture ended */
                System.out.println("onDragDone");
                /* if the data was successfully moved, clear it */
                if (event.getTransferMode() == TransferMode.MOVE) {
                    source.setText("");
                }
                
                event.consume();
            });
    
            root.getChildren().add(source);
            root.getChildren().add(target);
            stage.setScene(scene);
            stage.show();
        }
        
    }
    // 
  • 相关阅读:
    避免因为Arcgis Server服务设置不当导致Oracle Process溢出的方法
    ArcSOC进程数不断增长导致oracle processes溢出原因分析
    PostgreSQL中的Toast Pointer
    SQLite中字段顺序和PAGE_SIZE对性能的影响
    PG数据库CPU和内存满负荷运转优化案
    ArcGIS Server浏览地图服务无响应原因分析说明
    PythonWeb全栈开发-虚拟环境搭建
    C 语言学习——错误处理
    C 语言学习——Valgrind 内存问题简述
    HTML学习--拖放API实现拖放排序
  • 原文地址:https://www.cnblogs.com/rojas/p/4723160.html
Copyright © 2020-2023  润新知