gpt4 book ai didi

java - 在 JavaFx 和 Webstart (JNLP) 中提供触摸控制

转载 作者:行者123 更新时间:2023-12-01 11:23:55 25 4
gpt4 key购买 nike

我想传递java-vm-args来在应用程序中启用触摸控制,该应用程序是通过带有JNLP文件的webstart部署的。在 IDE (Intellij) 本地,我提供了以下 java-vm-args,它正在运行:

-Dcom.sun.javafx.isEmbedded=true -Dcom.sun.javafx.virtualKeyboard=javafx 

此外,还使用以下属性,例如对于 TextField,如果在 IDE 中使用上述 args 启动,则可以正常工作:

 myTextField.getProperties().put("vkType", "text");

经过如下修改的 JNLP 的 Webstart 无法正常工作:

[...]
<resources>
<j2se version="1.8+" java-vm-args="-XX:+UseConcMarkSweepGC -Xmx1024m -Dcom.sun.javafx.isEmbedded=true -Dcom.sun.javafx.virtualKeyboard=javafx"/>
[...]

应用程序会记录传递的java-vm-args,因此我可以检查参数是否已传递。除上述 args 之外,所有所需的 args 均已传递。

如何通过 webstart/JNLP 提供上述 args

最佳答案

也许您对 java-vm-args 的一些参数没有得到 JNLP 的明确支持,如 here 中所述。 (向下滚动到:“此版本支持以下 java-vm-args”)。

对于触摸控制,请添加以下内容:-Dcom.sun.javafx.touch=true(此处找到:https://community.oracle.com/thread/3548421)

其中一些可按编程使用:

例如检查是否嵌入:

public void start(Stage stage) {
boolean isEmbedded = (stage.getWidth() > 0);
...
}

其他的可以通过加载 JNLP 的 html 页面来设置。请在此处查找所有可用内容:

http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/deployment_toolkit.html#BABJHEJA

从 Netbeans 上的 JavaFX 项目生成的 JNLP 如下所示:

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0" xmlns:jfx="http://javafx.com" href="JavaFXPreloaderApp.jnlp">
<information>
<title>JavaFXPreloaderApp</title>
<vendor>None</vendor>
<description>null</description>
<offline-allowed/>
</information>
<resources>
<j2se version="1.6+" java-vm-args="-Xms100m -Xmx1024m " href="http://java.sun.com/products/autodl/j2se"/>
<jar href="lib/JavaFXPreloader.jar" size="3760" download="progress" />
<jar href="JavaFXPreloaderApp.jar" size="5636" download="eager" />
</resources>
<applet-desc width="800" height="600" main-class="com.javafx.main.NoJavaFXFallback" name="JavaFXPreloaderApp" >
<param name="requiredFXVersion" value="8.0+"/>
</applet-desc>
<jfx:javafx-desc width="800" height="600" main-class="application.JavaFXPreloaderApp" name="JavaFXPreloaderApp" preloader-class="preloader.JavaFXPreloader"/>
<update check="always"/>
</jnlp>

关于java - 在 JavaFx 和 Webstart (JNLP) 中提供触摸控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30979234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com