Gwt2.0の作業を始めたばかりです。ここに2つのテキストボックスがあります。どちらも同じイベント操作を実行します。使用する
addFocusListener()
私が今持っているのはです。
areaBox.addFocusListener(new FocusListener(){
@Override
@Deprecated
public void onFocus(Widget arg0) {
// TODO Auto-generated method stub
areaBox.setTitle("Area");
}
@Override
public void onLostFocus(Widget arg0) {
if(areaBox.getText().length() >= 4 )
{
areaBox.setStyleName("gwt-TextBox-Success");
}
else
{
areaBox.setStyleName("gwt-TextBox-Error");
cityBox.setText("Enter Area Name ");
areaBox.addFocusListener(new FocusListener(){
@Override
@Deprecated
public void onFocus(Widget arg0) {
areaBox.setText(null);
areaBox.setStyleName("gwt-TextBox-AE");
}
@Override
@Deprecated
public void onLostFocus(Widget arg0) {
}
});
}
}
});
cityBox.addFocusListener(new FocusListener(){
@Override
@Deprecated
public void onFocus(Widget arg0) {
cityBox.setTitle("City");
}
@Override
public void onLostFocus(Widget arg0) {
if(cityBox.getText().length() >= 4 )
{
cityBox.setStyleName("gwt-TextBox-Success");
}
else
{
cityBox.setStyleName("gwt-TextBox-Error");
cityBox.setText("Enter City Name ");
cityBox.addFocusListener(new FocusListener(){
@Override
@Deprecated
public void onFocus(Widget arg0) {
cityBox.setText(null);
cityBox.setStyleName("gwt-TextBox-AE");
}
@Override
@Deprecated
public void onLostFocus(Widget arg0) {
// TODO Auto-generated method stub
}
});
}
}
});
コードは何をしますか。Area TextBoxにフォーカスすると、何を入力するかを示すツールチップが表示されます。フォーカスが失われるか、次のテキストボックス(City TextBox)に到達すると、入力された文字列が4文字を超えているかどうかがチェックされます。はいの場合、SUCCESS cssスタイルがボックスに適用され、そうでない場合、ERRORcssスタイルが適用されます。そのため、もう一度クリックすると(AreaBox)、テキストがクリアされ、cssスタイルがリセットされます。
上記は2つのテキストボックス間のサンプルです。私を助けてください、私はほぼ10のそのようなフィールドを持っています、私はコードを最小にしたいです。コレクションやカスタムウィジェットの使用を考えています。しかし、どこから始めればよいのかわからない。あなたの助けと意見が必要です。ありがとう...
この問題を解決する方法は次のとおりです。
areaBox.addFocusListener(generateFocusListener("Area", "Enter Area Name "));
cityBox.addFocusListener(generateFocusListener("City", "Enter City Name "));
FocusListener generateFocusListener(final String title, final String text) {
return new FocusListener(){
@Override
@Deprecated
public void onFocus(Widget widget) {
// initial focus happens here
TextBox box = (TextBox) widget;
box.setTitle(title);
}
@Override
public void onLostFocus(Widget widget) {
// Focus is lost for the first time
TextBox box = (TextBox) widget;
if(box.getText().length() >= 4 )
{
box.setStyleName("gwt-TextBox-Success");
// Change focus listener so that now once pressed it resets
box.addFocusListener(new FocusListener(){
@Override
@Deprecated
public void onFocus(Widget widget) {
TextBox box = (TextBox) widget;
box.setText(null);
box.setStyleName("gwt-TextBox-AE");
}
@Override
@Deprecated
public void onLostFocus(Widget widget) {
TextBox box = (TextBox) widget;
if(box.getText().length() >= 4 )
{
box.setStyleName("gwt-TextBox-Success");
}
else
{
box.setStyleName("gwt-TextBox-Error");
box.setText(text);
}
}
});
}
else
{
box.setStyleName("gwt-TextBox-Error");
box.setText(text);
}
}
};
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加