Java小程序中的TAB键
我发现Java代码有两个问题,当代码作为小程序运行时,它希望用户按TAB键 首先,在Chrome中,媒体似乎没有被检测到 更糟糕的是,在IE9中,按TAB键会完全失去对小程序的关注 我以前看过这些报道,但我的搜索到目前为止并没有提出一个简洁的解决方案,甚至没有一个快速的答案,如果一个解决方案存在。。。是吗Java小程序中的TAB键,java,applet,Java,Applet,我发现Java代码有两个问题,当代码作为小程序运行时,它希望用户按TAB键 首先,在Chrome中,媒体似乎没有被检测到 更糟糕的是,在IE9中,按TAB键会完全失去对小程序的关注 我以前看过这些报道,但我的搜索到目前为止并没有提出一个简洁的解决方案,甚至没有一个快速的答案,如果一个解决方案存在。。。是吗 作为桌面或WebStart/JNLP应用程序选项卡运行很好,只有在小程序中才会变得混乱。我知道回答这个问题已经晚了,但如果其他人也面临同样的问题 那么希望这会有所帮助。 下面的链接解决我的问题
作为桌面或WebStart/JNLP应用程序选项卡运行很好,只有在小程序中才会变得混乱。我知道回答这个问题已经晚了,但如果其他人也面临同样的问题 那么希望这会有所帮助。 下面的链接解决我的问题。
我知道现在回答这个问题已经晚了,但如果还有其他人面临同样的问题 那么希望这会有所帮助。 下面的链接解决我的问题。
public void init()
{
容器topParent=null;
容器父项=此;
//自然的做法是调用getParent(),直到它返回
//null,但这样您将循环很长一段时间,因为
//PluginEmbeddedFrame的getParent()返回自身。
对于(int k=0;k<10;k++){
托帕伦特=父母;
parent=parent.getParent();
如果(父项==null)中断;
}
//如果topParent不是KeyEventDispatcher,那么我们必须处于某种状态
//不需要解决方法的插件版本。
试一试{
KeyEventDispatcher ked=(KeyEventDispatcher)topParent;
KeyboardFocusManager kfm=KeyboardFocusManager.getCurrentKeyboardFocusManager();
//您必须删除它两次,否则问题无法解决
kfm.removeKeyEventDispatcher(ked);
kfm.removeKeyEventDispatcher(ked);
}catch(ClassCastException e){}
}
公共void init()
{
容器topParent=null;
容器父项=此;
//自然的做法是调用getParent(),直到它返回
//null,但这样您将循环很长一段时间,因为
//PluginEmbeddedFrame的getParent()返回自身。
对于(int k=0;k<10;k++){
托帕伦特=父母;
parent=parent.getParent();
如果(父项==null)中断;
}
//如果topParent不是KeyEventDispatcher,那么我们必须处于某种状态
//不需要解决方法的插件版本。
试一试{
KeyEventDispatcher ked=(KeyEventDispatcher)topParent;
KeyboardFocusManager kfm=KeyboardFocusManager.getCurrentKeyboardFocusManager();
//您必须删除它两次,否则问题无法解决
kfm.removeKeyEventDispatcher(ked);
kfm.removeKeyEventDispatcher(ked);
}catch(ClassCastException e){}
}
参考java bug,您的问题是什么?我们是否可以确认行为、解决方法、错误修复、建议使用哪个键?@userunknown“搜索到目前为止并没有给出一个简洁的解决方案,甚至没有给出一个快速答案(如果存在解决方案)”哪一个问题的快速答案?请参考java错误您的问题是什么?我们是否可以确认该行为、是否有解决方法、是否有错误修复、是否建议使用哪个键?@userunknown“到目前为止,搜索并没有给出一个简洁的解决方案,甚至没有给出一个快速的答案(如果有解决方案的话)”哪一个问题的快速答案?在你的答案中,在代码框外加上一点注释将有助于理解代码背后的概念。代码是什么问题的答案。在您的答案中,在代码框之外添加一点注释,将有助于理解代码背后的概念。代码是什么问题的答案。
public void init()
{
Container topParent = null;
Container parent = this;
// The natural thing would be to call getParent() until it returns
// null, but then you would be looping for a long time, since
// PluginEmbeddedFrame's getParent() returns itself.
for (int k=0; k < 10; k++) {
topParent = parent;
parent = parent.getParent();
if (parent == null) break;
}
// If topParent isn't a KeyEventDispatcher then we must be in some
// Plugin version that doesn't need the workaround.
try {
KeyEventDispatcher ked = (KeyEventDispatcher)topParent;
KeyboardFocusManager kfm = KeyboardFocusManager.getCurrentKeyboardFocusManager();
// You have to remove it twice, otherwise the problem isn't fixed
kfm.removeKeyEventDispatcher(ked);
kfm.removeKeyEventDispatcher(ked);
} catch (ClassCastException e) {}
}