텍스트 필드가 거의 없습니다. 사용자가 모든 텍스트 필드를 채우고 사용자가 무언가를 삭제할 경우 버튼을 비활성화하는 방법은 무엇입니까? 나는 스윙을 사용하고있다.텍스트 필드가 채워진 경우 사용 버튼 설정
1
A
답변
1
당신은 모델 객체를 사용하고 변경을들을 수 있습니다. 하나 Document
는 ButtonEnablement
모든 Document
들에 대해 살펴과 ButtonModel
있게 변경 될 때마다
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Container contentPane = frame.getContentPane();
contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.PAGE_AXIS));
JTextField textField1 = new JTextField(30);
JTextField textField2 = new JTextField(30);
JTextField textField3 = new JTextField(30);
JButton jButton = new JButton("Button");
ButtonModel model = jButton.getModel();
Document document1 = textField1.getDocument();
Document document2 = textField2.getDocument();
Document document3 = textField3.getDocument();
ButtonEnablement buttonEnablement = new ButtonEnablement(model);
buttonEnablement.addDocument(document1);
buttonEnablement.addDocument(document2);
buttonEnablement.addDocument(document3);
contentPane.add(textField1);
contentPane.add(textField2);
contentPane.add(textField3);
contentPane.add(jButton);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
.
public class ButtonEnablement implements DocumentListener {
private ButtonModel buttonModel;
private List<Document> documents = new ArrayList<Document>();
public ButtonEnablement(ButtonModel buttonModel) {
this.buttonModel = buttonModel;
}
public void addDocument(Document document) {
document.addDocumentListener(this);
this.documents.add(document);
documentChanged();
}
public void documentChanged() {
boolean buttonEnabled = false;
for (Document document : documents) {
if (document.getLength() > 0) {
buttonEnabled = true;
break;
}
}
buttonModel.setEnabled(buttonEnabled);
}
@Override
public void insertUpdate(DocumentEvent e) {
documentChanged();
}
@Override
public void removeUpdate(DocumentEvent e) {
documentChanged();
}
@Override
public void changedUpdate(DocumentEvent e) {
documentChanged();
}
}
ButtonModel
대신에 JButton
의 Document
및 JTextField
사용의 장점은 업데이트됩니다 있기 때문에, 당신은 쉽게 구체적인 구현을 변경하고 당신이 당신의 UI 구성 요소가 업데이트됩니다 방법에 대해 걱정할 필요가 없다는 것입니다 모델이 변경되면 자동으로
0
텍스트 필드가 변경되는 경우를보기 위해 이벤트 리스너를 설정할 수 있습니다. 필드가 비어있는 경우 다음 버튼을 비활성화 : 여기
field1.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) { //watch for key strokes
if(field1.getText().length() == 0 || field2.getText().length() == 0)
button.setEnabled(false);
else
{
Button.setEnabled(true);
}
}
});
전략은 다음과 밭에있는 모든 키 스트로크
- 시계. 필드 2 (및 갖고있는 다른 필드)에 대해이 이벤트 리스너를 복제해야합니다.
- 필드가 비어 있기 때문에 단추를 사용하지 않도록 기본값으로 설정하십시오.
- 필드에 문자가없는 경우 단추를 비활성화하십시오. 그렇지 않으면 사용하도록 설정하십시오. 스윙 MVC 기반으로하므로
관련 문제
- 1. 텍스트 필드가 비어있는 경우 Android 버튼 비활성화
- 2. 필드가 비어있는 경우 비활성화 버튼
- 3. 모든 필드가 채워진 경우에만 버튼을 사용 하시겠습니까?
- 4. 필드가 채워진 새 인스턴스
- 5. 특정 필드가 비어있는 경우 비활성화 버튼 -
- 6. 버튼 클릭시 텍스트 필드가 흐려지는 것을 방지합니다.
- 7. 설정 버튼 TitleLabel 텍스트
- 8. XFA 채워진 필드가 누락 되었습니까?
- 9. 필드가 채워진 양식 다시 표시
- 10. 필드가 채워진 후 불투명도 변경
- 11. 텍스트 상자가 채워진 경우 버튼을 활성화하십시오.
- 12. 코코아 바인딩 : 여러 텍스트 필드에 값이있는 경우 버튼 사용
- 13. 이전 필드가 비어있는 경우 텍스트 입력 필드 사용 안 함
- 14. 버튼 클릭시 FXML - 텍스트 필드가 오른쪽으로 이동
- 15. 필드가 Null 인 경우 gridview의 버튼 숨기기
- 16. 특정 양식의 필드가 채워진 경우 페이지에서 단추 활성화
- 17. PHP 폼 - 허니팟 입력 필드가 채워진 경우 - 다른 페이지로 리디렉션
- 18. 모든 필드가 JavaScript로 채워진 후 제출 방법
- 19. 라벨 또는 텍스트 필드가 변경되도록하기위한 스윙 버튼
- 20. 선택 필드가 선택 될 때까지 버튼 사용
- 21. 다른 텍스트 상자가 채워진 경우 텍스트 상자 채우기
- 22. 동작 내에서 버튼 텍스트 설정
- 23. GWT 설정 버튼 텍스트 인라인
- 24. MySQLi bind_param은 모든 필드가 채워진 경우에만 작동합니다.
- 25. 마지막으로 채워진 이미지보기까지 버튼 숨기기
- 26. PHP 양식 : 필드가 채워진 성공한 이메일
- 27. 버튼 클릭 이벤트에서 텍스트 상자를 사용 가능하게 설정
- 28. 필드가 스키마에없는 경우 Mongoose 도트 표기법 사용
- 29. 모든 필드가 채워진 경우에만 양식을 제출하는 방법
- 30. Node.js 몽고메이 필드가 채워진 필드 채우기
우리는 한 번에 여러 필드에 이것을 사용할 수 있습니까 ??? –