GWT制作虚拟键盘
我有带键盘按钮的弹出面板。任务是在单击按钮时在登录弹出面板的文本字段中输入文本。 我试着启动按键并按下事件,但它并没有在字段中写入文本GWT制作虚拟键盘,gwt,Gwt,我有带键盘按钮的弹出面板。任务是在单击按钮时在登录弹出面板的文本字段中输入文本。 我试着启动按键并按下事件,但它并没有在字段中写入文本 final KeyButton keyBut = new KeyButton(smallBut.toString(),smButprs.toString(),codeBut,isShift); keyBut.addClickHandler(new ClickHandler() { @Override
final KeyButton keyBut = new KeyButton(smallBut.toString(),smButprs.toString(),codeBut,isShift);
keyBut.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
txtBox.setFocus(true);
DomEvent.fireNativeEvent(Document.get().createKeyDownEvent(false, false, keyBut.isShiftKeyDown(), false,keyBut.getKeyCode()), txtBox);
DomEvent.fireNativeEvent(Document.get().createKeyUpEvent(false, false, keyBut.isShiftKeyDown(), false,keyBut.getKeyCode()), txtBox);
DomEvent.fireNativeEvent(Document.get().createKeyPressEvent(false, false, keyBut.isShiftKeyDown(), false,keyBut.getKeyCode()), txtBox);
//DomEvent.fireNativeEvent(Document.get().createKeyPressEvent(false, false, keyBut.isShiftKeyDown(), false,68), txtBox);
}
});
试试这个:
keyBut.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
// If this is a button for "a"
textBox.setValue(textBox.getValue() + "a");
}
});
我知道这个解决方案。但我有像CAPS LOCK、ENTER这样的按钮,这需要另一个决定。如果我能发送事件,那就简单了。为什么?!您可以检查是否按下CAPS LOCK,并添加“A”而不是“A”。如果单击ENTER,则可以添加新行符号。既然可以在一行代码中完成,为什么还要选择更复杂的解决方案呢?