하나의 포커스 리스너에 여러 개의 텍스트 필드를 추가하려고하는데, 현재 텍스트 필드를 추가했지만 현재 여러 텍스트 필드를 추가하는 방법을 알지 못합니다.하나의 포커스 리스너에 여러 텍스트 필드 추가하기
답변
보통 그쪽으로 답변은 : "그것은 의존한다 ..."각 텍스트 필드에 대한 포커스 수신기를 만드는 것보다 효과적이라고 생각합니다.
하지만 귀하의 경우 이드
말 : 각 텍스트 필드는 자신의 수신기 (인스턴스)를 가져야한다. 그 이유는 텍스트 필드의 내용을 변경하기 때문입니다. 하나의 Listener 인스턴스에서만이 작업을 수행하면 영향을받는 텍스트 필드가 무엇이든 상관없이 이벤트가 발생할 때마다 모든 텍스트 필드를 변경하거나 다른 텍스트 필드를 추가하는 경우if
/
else
연쇄가 새 항목을 필요로합니다.
class MyTextFiledFocusListener implements FocusListener {
private final JTextFiled textField;
MyTextFiledFocusListener(JTextFiled textField){
this.textField = textField;
textField.addFocusListener(this);
}
public void focusGained(FocusEvent e)
{
textField.setText("");
}
public void focusLost(FocusEvent e)
{
// nothing
}
}
및 변경에 게시 된 비트 : : 그냥에 대한
new MyTextFiledFocusListener(JT_id);
을
나는 당신이 그것을 매개 변수로 텍스트 필드를주는 리스너에 대한 명명 된 내부 클래스를 만들 것을 제안 레코드 :
꽤 많은 스윙 관련 인터페이스는 하나 이상의 메소드가 기본 im을 가지고 있습니다. 빈 메소드를 가진 plement (기본 메소드에 대한 사전 java8 솔루션)은 FocusListener
입니다. 이러한 기본 구현은 보통 *Adapter
입니다. 당신이 FocusAdapter을 확장 할 때 따라서 당신은 FocusListener
을 구현하는 insted 코드를 단축 할 수있다 :
class MyTextFiledFocusListener extends FocusAdapter {
private final JTextFiled textField;
MyTextFiledFocusListener(JTextFiled textField){
this.textField = textField;
textField.addFocusListener(this);
}
public void focusGained(FocusEvent e)
{
textField.setText("");
}
}
선생님, 도와 주셔서 감사합니다. –
어때? 클릭하는 동안
FocusListener clearFields = new FocusListener() {
public void focusGained(FocusEvent e)
{
JT_id.setText("");
JT_name.setText("");
JT_add.setText("");
JT_cno.setText("");
JT_email.setText("");
}
public void focusLost(FocusEvent e)
{
// nothing
}
});
JT_id.addFocusListener(clearFields);
JT_name.addFocusListener(clearFields);
JT_add.addFocusListener(clearFields);
JT_cno.addFocusListener(clearFields);
JT_email.addFocusListener(clearFields)
당신은 여전히 다른 사람에 초점/모두 삭제됩니다/클릭 첫 번째 (JT_id
)에 초점을 맞춘 상황을 피하기 위해 텍스트 필드의 모든 포커스 리스너를 추가해야합니다 아무것도하지 않을 것이다.
대체 방법 - 각 텍스트 필드에 해당 필드 만 지우는 포커스 리스너를 지정하십시오.
선생님, 모든 텍스트 필드에 focusListener를 추가하지 않고 특정 필드를 지우는 방법은 없습니까? –
unfortunatelly no. 또는 기다릴 때, 나는 당신이 클릭 한 필드 (포커스를 얻은 필드)를 지우고 싶어한다는 것을 이해했다. 그렇지 않다면 코멘트를 남겨 주시고 질문을 업데이트 해주시기 바랍니다. 그렇지 않으면 "unfortuantelly no"주석이 적용됩니다. – Shark
- 1. 액션 리스너에 여러 항목 추가하기
- 2. 하나의 joptionpane이있는 여러 텍스트 필드
- 3. 하나의 텍스트 필드에 여러 텍스트 필드 결합
- 4. JavaScript의 이벤트 리스너에 타이머 추가하기
- 5. UIAlertView에서 포커스 비밀번호 텍스트 필드
- 6. UIWebview의 자동 포커스 텍스트 필드
- 7. 스위프트 : 하나의 UITimePicker, 여러 텍스트 필드
- 8. 자바의 Graphics에 텍스트 필드 추가하기
- 9. PHP에서 런타임시 텍스트 필드 추가하기
- 10. 런타임에 Jframe에 텍스트 필드 추가하기
- 11. 하나의 ExtJS 리스너에 함수 추가
- 12. 입력 (텍스트 필드) --- 포커스() 작동하지 않음
- 13. Sproutcore 2.0 텍스트 필드 포커스 이벤트
- 14. mvc에서 텍스트 필드 포커스 이벤트를 발생시키고 싶습니다.
- 15. 하나의 JPanel에 여러 그래픽 추가하기
- 16. Uploadify에 동적 필드 추가하기
- 17. LiveCode를 사용하는 자동 포커스 필드
- 18. TClientDataSet의 현재 포커스 필드
- 19. LINQ에서 텍스트 상자까지의 여러 필드
- 20. 모바일 양식 필드 - 포커스 손실
- 21. 하나의 속성에 대한 여러 필드
- 22. 하나의 필드로 여러 필드 합치기
- 23. 하나의 테이블에 여러 필드 합계
- 24. 장고 모델에서 여러 날짜 필드 추가하기
- 25. 하나의 검색 텍스트 필드 (RAILS)에서 여러 키워드 검색
- 26. 텍스트 필드에 포커스 설정
- 27. 데이터베이스의 한 열에 여러 텍스트 상자 추가하기
- 28. NSTableCellView에 필드 추가하기
- 29. 텍스트 필드에서 포커스 제거
- 30. 파이썬 사전에서 하나의 키에 여러 값 추가하기
에 오신 것을 환영합니다 스택 오버플로! [둘러보기] (http://stackoverflow.com/tour)를 방문하고 둘러보고 [도움말 센터] (http://stackoverflow.com/help)를 읽으십시오. 특히 [어떻게 묻는가?] 좋은 질문입니까?] (http://stackoverflow.com/help/how-to-ask) 및 [여기에 대해 내가 들려 줄 주제는 무엇입니까?] (http://stackoverflow.com/help/on-topic). –