8

入力テキストボックスにこのクラスがあります:

    class InputTextBox extends FlowPanel { 
      public InputTextBox(String labelText) { 
        super(); 
        Label label = new Label(labelText); 
        TextBox input = new TextBox(); 
        this.add(label); 
        this.add(input); 
        this.addStyleName("myBox"); 
      }


    }

onmoduleload が呼び出されたときにカーソルがテキストボックスに表示されるように、そのテキストボックスにフォーカスを設定するにはどうすればよいですか? メンバー関数を追加すると、多くのエラーがスローされるようです。

      public void setFocus(boolean b) {
        this.setFocus(b);

      } 
4

3 に答える 3

3

このブロックをコンストラクターまたは onLoad メソッドに追加する必要があります。

Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
@Override
public void execute() {
    //call setFocus method here:
    input.setFocus(true);
}});
于 2014-05-11T10:15:03.340 に答える
2

TextBox のプロパティ フィールドを作成し、setFocus メソッドでtextBox.setFocus(true)を呼び出すか、TextBox プロパティと呼んだものを呼び出します。

于 2012-06-11T00:27:45.027 に答える
0

そのようにコードを変更します

class InputTextBox extends FlowPanel {
    private Label label;
    private TextBox textBox;

    public InputTextBox(String labelText) { 
        super(); 
        label = new Label(labelText); 
        textBox = new TextBox(); 
        this.add(label); 
        this.add(input); 
        this.addStyleName("myBox"); 
    }

    public void setFocus(boolean focus) {
        textBox.setFocus(focus);
    }

    public String getText() {
        return textBox.getText();
    }
}

そのように使用してください

private InputTextBox newUser = new InputTextBox("Username");
newUser.setFocus(true); // Set focus
String value = newUser.getText(); // get text
于 2012-06-13T15:03:40.497 に答える