问题
TextField f = new TextField();
Button b = new Button("Save");
b.setClickShortcut(KeyCode.ENTER); // For quick saving from text field itself
TextArea longText = new TextArea(); // "Enter" is garbled here
Hot to make the shortcut to work only in the from text field?
回答1:
Use focus and blur listeners to remove and add the shortcut key:
f.addFocusListener(new FocusListener() {
@Override
public void focus(FocusEvent event) {
b.setClickShortcut(KeyCode.ENTER);
}
});
f.addBlurListener(new BlurListener() {
@Override
public void blur(BlurEvent event) {
b.removeClickShortcut();
}
});
回答2:
Newer versions of Vaadin require the following code as addListener() is deprecated now.
f.addFocusListener(new FocusListener() {
private static final long serialVersionUID = -6733373447805994139L;
@Override
public void focus(FocusEvent event) {
b.setClickShortcut(KeyCode.ENTER);
}
});
f.addBlurListener(new BlurListener() {
private static final long serialVersionUID = -3673311830300629513L;
@Override
public void blur(BlurEvent event) {
b.removeClickShortcut();
}
});
来源:https://stackoverflow.com/questions/10820117/both-enter-shortcut-and-textarea-in-vaadin