当焦点进入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 );
}
这是一种解决方法。你有没有找到更好的方法?
答案 0 :(得分:1)
这是显示Windows本机虚拟键盘的一种很酷的方式(我觉得它比JavaFX键盘好得多)。
您是否使用VM参数运行应用程序
-Dcom.sun.javafx.isEmbedded=true
-Dcom.sun.javafx.virtualKeyboard=javafx
最后一个还应该采用参数&#39; native&#39;但它也为我显示了JavaFX键盘。因此,为了明确显示Windows键盘,我自己寻求帮助:)