繁体   English   中英

使用拖放 cursor java swing 或 javafx

[英]Use drag and drop cursor java swing or javafx

当我执行某些操作时,我想更改 cursor 以在面板上的应用程序中使用拖放“移动”和“移动和复制”光标。 该区域在 swing 节点内部使用 swing,因此 swing(应用于面板)或 JavaFx(应用于 swing 节点)解决方案将起作用。

我确实找到了 swing 游标 DragSource.DefaultMoveDrop 和 DragSource.DefaultCopyDrop 但是当我应用它们时我的 cursor 没有改变。 (而且我知道我正在正确应用 cursor,因为应用其他游标工作正常)

编辑:请注意,当未嵌套在 SwingNode 和 JFrame 中时,cursor 确实会更改为我想要的。 我修改了代码示例以模拟我所在的环境,它不起作用:

public class Temp extends Application {
    
    public static void main(String[] args) {
        Application.launch();
    }
    
    @Override
    public void start(Stage primaryStage) throws Exception {
        SwingNode swingNode = new SwingNode();
        SwingUtilities.invokeLater(() -> {
            JPanel panel = new JPanel();
            panel.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR)); //Change this
            swingNode.setContent(panel);
        });
        Scene scene = new Scene(new BorderPane(swingNode));
        primaryStage.setScene(scene);
        primaryStage.show();
    }
    
}

好的,事实证明它有效 DragSource.DefaultMoveDrop 和 DragSource.DefaultCopyDrop 实际上在正常的 swing 应用程序中工作,而不是在我正在使用的环境中使用的 SwingNode 内的 JPanel 上。 (我无法改变这个)

因此,如果您遇到此问题并且您没有混合框架,请回答这个 forms。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM