Java Swing应用程序 - Window 8平板电脑 - 屏幕键盘

4
当我在安装在Windows 8平板电脑上的基于Java Swing的应用程序中单击文本字段时,屏幕键盘不会自动弹出。我需要实现一些内容才能启用它吗?还是需要显式设置以实现此功能?
1个回答

0
首先,输入插入符是否出现在文本字段中?如果是的话,您可以尝试使用java.awt.Component.requestFocus()或java.awt.Component.requestFocusInWindow()。如果两者都失败了,则怀疑您的JVM和/或机器存在问题。
特定组件必须启用并可聚焦(所有父组件也是如此),才能将焦点放在文本字段上。虽然默认的Java属性是使新组件都具有可聚焦性和启用性,但您可以通过对组件执行setEnabled(true);和setFocusable(true);来强制执行它们。焦点通常由闪烁的插入符表示。
还要确保您没有任何奇怪的鼠标监听器正在消耗鼠标事件。
如果所有其他方法都失败了,请在组件上添加一个鼠标侦听器和焦点侦听器,以测试它是否正在接收焦点,并尝试使用不同的方式选择它(通过Tab键、鼠标单击或触摸输入)。
Java是平台无关的。假设您正在使用AWT / Swing对象,底层机制应该由JVM自动处理,无论是在Windows 8还是Windows 98上(如果它受到此版本的Java支持)。

是的,输入符号正在闪烁。焦点不是我的问题。这是关于在Win 8平板电脑上加载屏幕键盘的问题。我在Windows 8平板电脑上尝试了一个简单的JtextField示例,即使是这个示例也没有加载屏幕键盘。我所做的是,我为Jtextfield编写了一个HelloWorld类型的应用程序,运行该应用程序。它打开了一个带有单个文本字段的窗口,并且焦点已经在该字段上(闪烁的插入符号)。通过触摸,我手动使其失去焦点,然后再次点击文本字段。理论上,由于它是一个文本字段,屏幕键盘应该弹出。但是这并没有发生。 - Viswanath T
@ViswanathT 如果可能的话,请尝试在另一台机器上运行您的应用程序(也带有Windows 8和触摸屏)。如果甚至像JTextField示例这样简单的应用程序都无法正常工作,那么很可能是JVM出了问题。需要弄清楚是否只是你的计算机或每个win 8触摸屏都有此问题。确保Java已更新到最新版本,并尝试进行干净的重新安装(预防措施防止安装不良)。 - initramfs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接