键盘上的箭头键在TextArea&;中不起作用;在gwt中添加为树项目小部件后的Texbox

键盘上的箭头键在TextArea&;中不起作用;在gwt中添加为树项目小部件后的Texbox,gwt,Gwt,在gwt中添加“作为树项”小部件后,键盘的箭头键在TextArea和TextBox中不起作用 public class TreeWidget implements EntryPoint { @Override public void onModuleLoad() { VerticalPanel panel=new VerticalPanel(); TextA

在gwt中添加“作为树项”小部件后,键盘的箭头键在TextArea和TextBox中不起作用

    public class TreeWidget implements EntryPoint {
          @Override
                public void onModuleLoad() {
                    VerticalPanel panel=new VerticalPanel();
                    TextArea textArea=new TextArea();
                    Tree tree=new Tree();
                    TreeItem item=new TreeItem();
                    item.addItem(textArea);
                    tree.addItem(item);
                    panel.add(tree);
                    RootPanel.get().add(panel);

                }}

}

我认为树的键盘导航是捕获关键事件

您可以通过以下方式禁用它:创建一个不使用键盘导航的树实例。必须重写告诉每个树项是否使用键的方法

最简单的方法:

Tree tree = new Tree() {
  @Override
  public boolean isKeyboardNavigationEnabled(TreeItem currentItem) {
     return false; // no items will have key navigation
  }
};

如果有效,那么问题在于键盘导航。您可以询问树项是否为包含文本区域的树项,并返回false,以便让键盘处理文本。

是的,这是按键事件的问题。谢谢,我面临的问题已经解决了。但它正在停止树项目事件,所以什么样的解决方案可以同时起作用。我不确定,但如果对每个按下的键都检查此方法,则可以检查该项目是否为文本项目,以及文本框/区域是否聚焦。如果文本聚焦,则返回false,否则返回true。可能会重复