Java 检查给定数据的JTextField
我使用此代码来确保textfields中的每个给定数据都是正确的 但在dateTextField中,当我给它任何东西或将其留空时,它的错误消息会显示出来,但当我单击“保存”按钮时,该数据将保存到我的JTable中 我的错在哪里Java 检查给定数据的JTextField,java,swing,jtextfield,Java,Swing,Jtextfield,我使用此代码来确保textfields中的每个给定数据都是正确的 但在dateTextField中,当我给它任何东西或将其留空时,它的错误消息会显示出来,但当我单击“保存”按钮时,该数据将保存到我的JTable中 我的错在哪里 public class AddBookDialog extends javax.swing.JDialog { public AddBookDialog(JFrame owner){ super(owner,"New Book",true); ...
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()”为null,那么每次调用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或长度为零,则方法as length将返回false。
hasText仅在字符串大于空格时返回true。如果“BookDatetextfield.getText()”为null,则每次调用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或长度为零,则方法as length将返回false。
hasText仅当字符串的空格数超过时才会返回true。如果没有空格,则数据将保存为null,保存在JTable中,这是正常的@Yohan我想强制用户输入正确的数据,或者单击“取消并处理”页面!在“OkButtonActionPerformed”中,如果所有布尔方法调用都为“false”,则需要显示一条消息,而不是继续。这就是您所需要的吗?是的,我不想前进。如果没有任何内容,那么数据将以null形式保存在JTable中,这是正常的@Yohan我想强制用户输入正确的数据,或者单击“取消并处理”页面!在“OkButtonActionPerformed”中,如果所有布尔方法调用都为“false”,则需要显示一条消息,而不是继续。这就是你所需要的吗?是的,我不想再往前走了。谢谢你@欺骗者,帮助者回答。谢谢你@欺骗者,帮助者回答。