我用GWT框架创建了GUI的一些元素。我只有一个带有简单onCLick方法的按钮。当按钮获得焦点(setfocus(true))时,triogger会自动触发单击事件。但我只是希望按钮保持焦点而不会发生任何事件。 如何以简单的方式制作它?
我的代码:
public void onModuleLoad(){
..............
textBoxTx = new TextBox();
textBoxTx.addKeyDownHandler(new KeyDownHandler() {
public void onKeyDown(KeyDownEvent event) {
switch(event.getNativeKeyCode()){
case KeyCodes.KEY_ENTER: addTx();
}
}
});
....
protected void addTx()
final String tx = textBoxTx.getText().toUpperCase().trim();
textBoxTx.setFocus(true);
if (!tx.matches("^[0-9\\.]{1,10}$")) {
Window.alert("'" + tx + "' n'est pas valide .");
textBoxTx.selectAll();
return;
}
textBoxTx.setText("");
param_Tx=Double.parseDouble(tx);
if (param_An==0)
rateFlexTable.setText(1, 2, tx);
else
{
for (int i=1;i<=param_An;i++)
rateFlexTable.setText(i, 2,tx);
rateFlexTable.setText(param_An, 4,"");
}
**// fire the click event of my button when I give the focus**
**btnCalcul.setFocus(true)**
}
答案 0 :(得分:0)
如果您有标准com.google.gwt.user.client.ui.Button
,则在其上调用setFocus(true)
将不会激活该按钮的ClickHandlers。如果您可以共享一些代码可能会很好,因为除非您明确调用Button.click()
或用户实际上是单击按钮,否则您所描述的内容不会发生。