【问题标题】:Windows tablet touch keyboard doesn't popup when textfield focused当文本字段聚焦时,Windows 平板电脑触摸键盘不会弹出
【发布时间】:2014-09-04 05:29:08
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

    【讨论】:

    • @terix2k11 不起作用,如果触摸则不显示板载键盘窗口
    • @M.H.我也在使用 Aubin 提出的 focuslistener 。帖子stackoverflow.com/questions/38774139/… 也帮助了我。我还没有在 Windows 10 上尝试过。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    • 2016-09-03
    • 2013-06-15
    • 1970-01-01
    • 2021-07-22
    • 1970-01-01
    相关资源
    最近更新 更多