2012-03-24 59 views
0

我用GWT框架创建了一些我的GUI元素。我只有一个简单的onCLick方法的按钮。当按钮获得焦点时(setfocus(true)),triogger会自动触发一个点击事件。但我只是想让按钮保持焦点而不触发任何事件。 如何以简单的方式制作它?Gwt:如何不着火焦点后点击事件?


我的代码:

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

如果你有一个标准com.google.gwt.user.client.ui.Button,呼吁它setFocus(true)不会激活该按钮的ClickHandlers。如果你可以分享一些代码,这可能是件好事,因为你所描述的内容不应该发生,除非你明确地调用了Button.click()或者用户实际上点击了按钮。