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

时间:2014-09-04 05:29:08

标签: java windows-8 javafx-8 tablet-pc

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

最后一个还应该采用参数&#39; native&#39;但它也为我显示了JavaFX键盘。因此,为了明确显示Windows键盘,我自己寻求帮助:)

相关问题