如何在Vaadin TextArea中实现正常的Tab行为

时间:2017-04-24 10:59:51

标签: vaadin

我正在使用Vaadin并且我有TextArea,我希望用户能够在文本中输入Tabs。但是按Tab键会循环浏览Web浏览器中的组件。是否有任何配置可以实现此目的,以便不是将用户循环到下一个组件,而是输入文字"\t"

2 个答案:

答案 0 :(得分:2)

Vaadin TextArea是一个简单的HTML <textarea>元素,如果没有客户端修改,它不支持开箱即用的制表符字符输入。制表符通常用于切换可聚焦元素(tabindex)。

您可以使用例如CodeMirror(https://vaadin.com/directory#!addon/v-codemirror),用于启用可以处理制表符的客户端代码编辑器。第二种选择是使用客户端JS / GWT扩展来扩展Vaadin TextArea:请参阅Use tab to indent in textareahttps://vaadin.com/docs/-/part/framework/gwt/gwt-extension.html

答案 1 :(得分:1)

添加shortcutlistener似乎有效,例如:

TextArea area = new TextArea("test")
area.addShortcutListener(new ShortcutListener("Shortcut Name", ShortcutAction.KeyCode.TAB, null) {
@Override
public void handleAction(Object sender, Object target) {
    area.setValue(area.getValue() + "\t")
}
});