Aub*_*bin 5 java tablet-pc windows-8 javafx-8
当焦点进入 时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 );
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在任何情况下:
final class VisualAnalysis extends GridPane implements IView {
private final TextField tech = new TextField();
@Override
public void setController( Controller ctrl ) {
...
tech.focusedProperty().addListener( Controller::showVirtualKeyboard );
}
Run Code Online (Sandbox Code Playgroud)
这是一种解决方法。你有没有发现更好的方法?
这是显示 Windows 原生虚拟键盘的一种很酷的方式(我觉得它比 JavaFX 好得多)。
您是否使用 VM 参数运行应用程序
-Dcom.sun.javafx.isEmbedded=true
-Dcom.sun.javafx.virtualKeyboard=javafx
Run Code Online (Sandbox Code Playgroud)
最后一个也应该采用参数“native”,但它也为我显示了 JavaFX 键盘。因此,为了明确显示 Windows 键盘,我自己正在寻找一些帮助:)
| 归档时间: |
|
| 查看次数: |
1695 次 |
| 最近记录: |