모든 TextField에 값이없는 경우 사용자가 진행 상황을 저장할 수 없도록하려면 유효성 검사를 위해 JTextField의 값을 비교하려고합니다.Java, JTextField .equals
이것은 내 텍스트 필드 필드입니다.
public void DrawBookAttributes() {
lblBookName = new JLabel("Book Name :");
lblBookName.setFont(getLblFont());
lblBookName.setSize(140, 20);
lblBookName.setLocation(280, 150);
menuFrame.add(lblBookName);
tfBookName = new JTextField();
tfBookName.setSize(140, 20);
tfBookName.setLocation(420, 150);
menuFrame.add(tfBookName);
lblBookID = new JLabel("Book ID :");
lblBookID.setFont(getLblFont());
lblBookID.setSize(140, 20);
lblBookID.setLocation(280, 50);
menuFrame.add(lblBookID);
tfBookID = new JTextField();
tfBookID.setSize(140, 20);
tfBookID.setLocation(420, 50);
tfBookID.setText("hello");
tfBookID.setEditable(false);
menuFrame.add(tfBookID);
JLabel lblBookCost = new JLabel("Cost (£) :");
lblBookCost.setFont(getLblFont());
lblBookCost.setSize(140, 20);
lblBookCost.setLocation(280, 200);
menuFrame.add(lblBookCost);
tfBookCost = new JTextField();
tfBookCost.setSize(140, 20);
tfBookCost.setLocation(420, 200);
tfBookCost.addKeyListener(this);
menuFrame.add(tfBookCost);
lblBookYearOfPublication = new JLabel("Publication Date :");
lblBookYearOfPublication.setSize(140, 20);
lblBookYearOfPublication.setLocation(280, 250);
lblBookYearOfPublication.setFont(getLblFont());
menuFrame.add(lblBookYearOfPublication);
JTextField tfBookYearOfPublication = new JTextField();
tfBookYearOfPublication.setSize(140, 20);
tfBookYearOfPublication.setLocation(420, 250);
tfBookYearOfPublication.setText("DD-MM-YYYY");
tfBookYearOfPublication.addActionListener(this);
menuFrame.add(tfBookYearOfPublication);
JLabel lblbookPublishngHouse = new JLabel("Publishing Orgaisation :");
lblbookPublishngHouse.setSize(140, 20);
lblbookPublishngHouse.setLocation(280, 300);
lblbookPublishngHouse.setFont(getLblFont());
menuFrame.add(lblbookPublishngHouse);
JTextField tfBookPublishingHouse = new JTextField();
tfBookPublishingHouse.setSize(140, 20);
tfBookPublishingHouse.setLocation(420, 300);
menuFrame.add(tfBookPublishingHouse);
JLabel lblBookISBN = new JLabel("ISBN :");
lblBookISBN.setSize(140, 20);
lblBookISBN.setLocation(280, 350);
lblBookISBN.setFont(getLblFont());
menuFrame.add(lblBookISBN);
JTextField tfBookISBN = new JTextField();
tfBookISBN.setSize(140, 20);
tfBookISBN.setLocation(420, 350);
menuFrame.add(tfBookISBN);
JLabel lblBookPages = new JLabel("Number of Pages :");
lblBookPages.setSize(140, 20);
lblBookPages.setLocation(280, 400);
lblBookPages.setFont(getLblFont());
menuFrame.add(lblBookPages);
JTextField tfBookPages = new JTextField();
tfBookPages.setSize(140, 20);
tfBookPages.setLocation(420, 400);
menuFrame.add(tfBookPages);
menuFrame.setVisible(true);
}
는이 유효성 검사 부분
public void EntryCheck() {
if (tfBookName.getText().equals("")) {
EntryChecker++;
System.out.println(EntryChecker);
}
if (tfBookISBN.getText().equals("")) {
EntryChecker++;
}
if (tfBookCost.getText().equals("")) {
EntryChecker++;
}
if (tfBookPages.getText().equals("")) {
EntryChecker++;
}
if (tfBookPublishingHouse.getText().equals("")) {
EntryChecker++;
}
if (tfBookYearOfPublication.getText().equals("")) {
EntryChecker++;
}
if (tfBookCost.getText().equals("DD-MM-YYY")) {
EntryChecker++;
}
System.out.println(EntryChecker);
}
EntryChecker는 정수, 나는 그것을 사용자가 정보를 입력하지 않고 텍스트 필드를 왼쪽 때마다 값을 추가하고이다.
프로그램을 디버깅 할 때마다이 유효성 검사 줄에서 NullPointerException이 발생합니다.
if (tfBookISBN.getText().equals("")) {
EntryChecker++;
아무도 아이디어가 있으며 문제를 해결하는 방법은 무엇입니까?
감사합니다.
if 문에서 'tfBookISBN'이 필드 생성시 동일한 객체 참조인지 확인 하시겠습니까? 위 코드의 범위는 무엇입니까? 그렇다면 글로벌 tfBookISBN이 있습니까? 그리고 다른 하나는 방법 안에 있습니까? ie more code : – Yazan
@ Yazan tfBookISBN은 글로벌이고 private입니다. 한 가지 방법으로 선언하고 같은 클래스의 다른 클래스에서 액세스하려고합니다. – Helvijs
@ Yazan 요청한대로 Both Methods의 모든 코드가 추가되었습니다. – Helvijs