2014-09-04 56 views
3

當焦點集中到TextField時,觸摸屏鍵盤不出現。當文本字段集中時,Windows平板觸摸鍵盤不彈出

我想這是因爲一個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

這是一個很酷的方式來展示Windows本機虛擬鍵盤(我覺得它比JavaFX好得多)。

你有沒有與VM參數

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

最後一個也應該採取參數「天然」,但它也顯示了JavaFX鍵盤對我來說運行應用程序。所以爲了明確地顯示Windows鍵盤,我正在尋找一些自己的幫助:)

+1

我沒有平板了... – Aubin 2014-12-10 17:04:12

+0

@ terix2k11不工作,顯示沒有窗口板載鍵盤如果觸摸 – 2017-07-15 06:20:40

+0

@ M.H。我也使用Aubin提出的focuslistener。該職位https://stackoverflow.com/questions/38774139/show-touch-keyboard-tabtip-exe-in-windows-10-anniversary-edition/幫助我。我還沒有在wIndows 10上試過它。 – terix2k11 2017-07-19 11:44:47

相關問題