Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java小程序中的TAB键_Java_Applet - Fatal编程技术网

Java小程序中的TAB键

Java小程序中的TAB键,java,applet,Java,Applet,我发现Java代码有两个问题,当代码作为小程序运行时,它希望用户按TAB键 首先,在Chrome中,媒体似乎没有被检测到 更糟糕的是,在IE9中,按TAB键会完全失去对小程序的关注 我以前看过这些报道,但我的搜索到目前为止并没有提出一个简洁的解决方案,甚至没有一个快速的答案,如果一个解决方案存在。。。是吗 作为桌面或WebStart/JNLP应用程序选项卡运行很好,只有在小程序中才会变得混乱。我知道回答这个问题已经晚了,但如果其他人也面临同样的问题 那么希望这会有所帮助。 下面的链接解决我的问题

我发现Java代码有两个问题,当代码作为小程序运行时,它希望用户按TAB键

首先,在Chrome中,媒体似乎没有被检测到

更糟糕的是,在IE9中,按TAB键会完全失去对小程序的关注

我以前看过这些报道,但我的搜索到目前为止并没有提出一个简洁的解决方案,甚至没有一个快速的答案,如果一个解决方案存在。。。是吗


作为桌面或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) {}
    }