当文本字段聚焦时,Windows 平板电脑触摸键盘不会弹出

Aub*_*bin 5 java tablet-pc windows-8 javafx-8

当焦点进入 时TextField,触摸屏键盘不会出现。

我想这是因为 JavaFx 应用程序不符合 Metro 标准?

我找到了一种弹出键盘的方法:

public class Controller {

   public static void showVirtualKeyboard(
      ObservableValue<? extends Boolean> observable,
      Boolean                            oldState,
      Boolean                            hasFocus )
   {
      if( hasFocus ) {
         try {
            Runtime.getRuntime().exec(
               "cmd /c \"C:\\Program Files\\Common Files\\microsoft " +
               "shared\\ink\\tabtip.exe\"" );
         }
         catch( final Throwable t ) {
            LogHelper.severe( t );
         }
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

在任何情况下:

final class VisualAnalysis extends GridPane implements IView {

   private final TextField tech = new TextField();

   @Override
   public void setController( Controller ctrl   ) {
      ...
      tech.focusedProperty().addListener( Controller::showVirtualKeyboard );
   }
Run Code Online (Sandbox Code Playgroud)

这是一种解决方法。你有没有发现更好的方法?

ter*_*k11 2

这是显示 Windows 原生虚拟键盘的一种很酷的方式(我觉得它比 JavaFX 好得多)。

您是否使用 VM 参数运行应用程序

-Dcom.sun.javafx.isEmbedded=true
-Dcom.sun.javafx.virtualKeyboard=javafx
Run Code Online (Sandbox Code Playgroud)

最后一个也应该采用参数“native”,但它也为我显示了 JavaFX 键盘。因此,为了明确显示 Windows 键盘,我自己正在寻找一些帮助:)