gpt4 book ai didi

java - 检查 JTextField 给定的数据

转载 作者:行者123 更新时间:2023-12-02 00:00:49 26 4
gpt4 key购买 nike

我使用此代码来确保文本字段中的每个给定数据都是正确的。

但是在 dateTextField 中,当我给它任何内容或将其留空时,会显示错误消息,但是当我单击“保存”按钮时,该数据将保存到我的 JTable 中!

我的错误在哪里?

public class AddBookDialog extends javax.swing.JDialog {

public AddBookDialog(JFrame owner){
super(owner,"New Book",true);
...
}
BookInformation bookinform;

private void OkButtonActionPerformed(java.awt.event.ActionEvent evt) {
bookinform=new BookInformation();

if(!BookIDControl()){
return;
}

if(!BookNameControl()){
return;
}

if(!BookDateControl()){
return;
}

bookinform.setBorrowStatus("No");

AddBookDialog.this.dispose();

}

public BookInformation getBookInfos() throws NullPointerException{
return bookinform;
}
public boolean BookNameControl(){
bookinform.setBookName(BookNametextfiled.getText());
if(bookinform.getBookName().trim().isEmpty()){
errorLable.setText("Empty Book Name");
return false;
}

if(havedigit(bookinform.getBookName().trim())){
errorLable.setText("Book Name Have Digit");
return false;
}
return true;
}

public boolean BookDateControl(){
bookinform.setBookDate(BookDatetextfield.getText().trim());
if(bookinform.getBookDate().trim().isEmpty()){
errorLable.setText("Empty Book Date");
return false;
}
else if(haveSpace(bookinform.getBookDate().trim())){
errorLable.setText("Space in Book Date!");
return false;
}

else if(haveletter(bookinform.getBookDate().trim())){
errorLable.setText("Letter in Book Date");
return false;
}
return true;
}

public boolean BookIDControl(){
bookinform.setBookID(BookidTextfield.getText().trim());
if(bookinform.getBookID().trim().isEmpty()){
errorLable.setText("Empty Book ID");
return false;
}

if(haveSpace(bookinform.getBookID().trim())){
errorLable.setText("Space in Book ID !");
return false;
}

if(haveletter(bookinform.getBookID().trim())){
errorLable.setText("Letter in Book ID");
return false;
}
return true;
}
...

第二类:

public class AllBooksM extends JFrame implements ActionListener{
...
if(e.getSource()==AddBookButton){
AllBooks allBooks=new AllBooks();
AddBookDialog add_book=new AddBookDialog(AllBooksM.this);
add_book.setVisible(true);
BookInformation B_info=add_book.getBookInfos();
if(B_info != null){
allBooks.AddRow(B_info);
}
// bookcount();

}
...
}

我的输出:

26     thired     62     Yes
29 sixth 92 No
35 vff 53 No
34332 dsds null
3434 ssdas null
222 fgfgf null
77 sds null

最佳答案

下面的代码如果“BookDatetextfield.getText()”为空,那么每次调用trim()方法时都会抛出异常,如果你的应用程序没有死掉,那是因为你捕获了异常。

    public boolean BookDateControl(){
bookinform.setBookDate(BookDatetextfield.getText().trim());

if(bookinform.getBookDate().trim().isEmpty()){
errorLable.setText("Empty Book Date");
return false;
} else if(haveSpace(bookinform.getBookDate().trim())){
errorLable.setText("Space in Book Date!");
return false;
} else if(haveletter(bookinform.getBookDate().trim())){
errorLable.setText("Letter in Book Date");
return false;
}

return true;
}

解决方法是在您拥有 spring.jar 之前进行某些验证,它们有一些非常有用的方法,那么您的代码将如下所示:

   public boolean BookDateControl(){
if(!StringUtils.hasLength(BookDatetextfield.getText()) || !StringUtils.hasText(BookDatetextfield.getText())){
errorLable.setText("Empty Book Date");
return false;
}
bookinform.setBookDate(BookDatetextfield.getText().trim());

if(bookinform.getBookDate().trim().isEmpty()){
errorLable.setText("Empty Book Date");
return false;
} else if(haveSpace(bookinform.getBookDate().trim())){
errorLable.setText("Space in Book Date!");
return false;
} else if(haveletter(bookinform.getBookDate().trim())){
errorLable.setText("Letter in Book Date");
return false;
}

return true;
}

如果字符串为 null 或零长度,则 length 方法将返回 false。仅当字符串包含多个空格时,hasText 才会返回 true。

关于java - 检查 JTextField 给定的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14890861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com