방금 Gwt2.0 작업을 시작했습니다. 여기에 두 개의 텍스트 상자가 있습니다. 둘 다 동일한 이벤트 작업을 수행합니다. 사용
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
}
});
}
}
});
코드가하는 일입니다. Focused on Area TextBox, 입력 할 내용을 보여주는 도구 설명이 나타납니다. Focus on it이 손실되거나 다음 텍스트 상자 (예 : City TextBox)로 오면 입력 한 문자열이 4 자 이상인지 확인합니다. 그렇다면 SUCCESS CSS 스타일이 상자에 적용되고, 그렇지 않으면 ERROR CSS 스타일이 적용됩니다. 따라서 다시 클릭하면 (AreaBox) 텍스트가 지워지고 CSS 스타일이 재설정됩니다.
위는 두 개의 텍스트 상자 사이의 샘플입니다. 제발 도와주세요. 거의 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] 삭제
몇 마디 만하겠습니다