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



当焦点进入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 );
         }
      }
   }
}

在任何视图中:

final class VisualAnalysis extends GridPane implements IView {
   private final TextField tech = new TextField();
   @Override
   public void setController( Controller ctrl   ) {
      ...
      tech.focusedProperty().addListener( Controller::showVirtualKeyboard );
   }

这是一个变通办法。你发现更好的方法了吗?

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新