私はGWTQueryを使用paste
してテキストボックスのイベントを検出し、小さなタイマーを設定してから値を貼り付けています。このようなもの:
$("#paste").live("paste",new Function() {
public boolean f(Event e) {
Timer t = new Timer() {
public void run() {
String text = paste.getText();
String oldtext = box.getText();
String oldsel = box.getSelectedText();
int oldpos = box.getCursorPos();
if (text.matches("^\\d+$")) {
box.setText(oldtext.substring(0,oldpos)+text+oldtext.substring(oldpos+oldsel.length(),oldtext.length()));
oldpos += text.length();
}
box.setReadOnly(false);
box.setFocus(true);
box.setCursorPos(oldpos);
paste.setText("");
}
};
t.schedule(5);
return true;
}
});
これをメイン ファイル (onModuleLoad
宣言されている場所、つまりブラウザに表示されるファイル) に含めると、期待どおりに動作します。ただし、テキストボックスを独自のパッケージに配置し、initWidget
それらをメインファイルにインポートするように呼び出して、コードを区分化しました。このコードをそのクラスに配置すると、 のようなエラー メッセージが表示Uncaught exception escaped
されます
com.google.gwt.sample.myproject.client.Location$3$1.run
。ここで何が問題なのか、どうすれば修正できるのか教えてもらえますか?