[英]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.