javafx 以编程方式为虚拟键盘设置参数
javafx programmatically set arguments for virtual keyboard
我有一个桌面应用程序,将在没有键盘的计算机上使用,输入将在触摸屏上进行。当 运行 来自 eclipse 时,我可以让虚拟键盘正常显示在文本字段上。我使用了这些参数
-Dcom.sun.javafx.touch=true
-Dcom.sun.javafx.isEmbedded=true
-Dcom.sun.javafx.virtualKeyboard=none
下面的 link 告诉我在哪里添加参数。
how to add command line parameters when running java code in Eclipse?
当我制作可运行的 jar 文件时,键盘不显示。我正在寻找一种以编程方式设置这些参数的方法,以便可运行的 jar 文件将在任何计算机上显示虚拟键盘。任何帮助将不胜感激。
JVM 的 -D
选项设置系统 属性。因此,您可以通过执行以下操作来实现相同的目的:
public class MyApplication extends Application {
@Override
public void init() {
System.setProperty("com.sun.javafx.touch", "true");
System.setProperty("com.sun.javafx.isEmbedded", "true");
System.setProperty("com.sun.javafx.virtualKeyboard", "none");
}
@Override
public void start(Stage primaryStage) {
// ...
}
}
我能找到的唯一可行的解决方案来自这里
创建包装器 class 并在调用应用程序原始 main 方法之前设置系统属性。
public class MainWrapper {
public static void main(String[] args) throws Exception
{ // application - package name
Class<?> app = Class.forName("application.Main");
Method main = app.getDeclaredMethod("main", String[].class);
System.setProperty("com.sun.javafx.isEmbedded", "true");
System.setProperty("com.sun.javafx.touch", "true");
System.setProperty("com.sun.javafx.virtualKeyboard", "javafx");
Object[] arguments = new Object[]{args};
main.invoke(null, arguments);
}
}
制作可运行的 jar 文件时,只需指向启动配置的 MainWrapper class。
我有一个桌面应用程序,将在没有键盘的计算机上使用,输入将在触摸屏上进行。当 运行 来自 eclipse 时,我可以让虚拟键盘正常显示在文本字段上。我使用了这些参数
-Dcom.sun.javafx.touch=true
-Dcom.sun.javafx.isEmbedded=true
-Dcom.sun.javafx.virtualKeyboard=none
下面的 link 告诉我在哪里添加参数。 how to add command line parameters when running java code in Eclipse?
当我制作可运行的 jar 文件时,键盘不显示。我正在寻找一种以编程方式设置这些参数的方法,以便可运行的 jar 文件将在任何计算机上显示虚拟键盘。任何帮助将不胜感激。
JVM 的 -D
选项设置系统 属性。因此,您可以通过执行以下操作来实现相同的目的:
public class MyApplication extends Application {
@Override
public void init() {
System.setProperty("com.sun.javafx.touch", "true");
System.setProperty("com.sun.javafx.isEmbedded", "true");
System.setProperty("com.sun.javafx.virtualKeyboard", "none");
}
@Override
public void start(Stage primaryStage) {
// ...
}
}
我能找到的唯一可行的解决方案来自这里
创建包装器 class 并在调用应用程序原始 main 方法之前设置系统属性。
public class MainWrapper {
public static void main(String[] args) throws Exception
{ // application - package name
Class<?> app = Class.forName("application.Main");
Method main = app.getDeclaredMethod("main", String[].class);
System.setProperty("com.sun.javafx.isEmbedded", "true");
System.setProperty("com.sun.javafx.touch", "true");
System.setProperty("com.sun.javafx.virtualKeyboard", "javafx");
Object[] arguments = new Object[]{args};
main.invoke(null, arguments);
}
}
制作可运行的 jar 文件时,只需指向启动配置的 MainWrapper class。