Java 当字符串格式错误时,JOptionPane不显示?

Java 当字符串格式错误时,JOptionPane不显示?,java,string,swing,jframe,joptionpane,Java,String,Swing,Jframe,Joptionpane,我有一个文本字段设置为时间,它拒绝无效格式的字符串。正确的格式是HH:mm。当用户输入不正确的格式时,我希望显示一条错误消息,但由于某些原因,它似乎没有显示JOptionFrame。奇怪的是,当我从else语句中取出JOptionPane时,它显示的很好,所以我不确定会出什么问题。有人有什么想法吗 if (timeString.getText()!= null) { System.out.println(timeString.getText()); } else { JOp

我有一个文本字段设置为时间,它拒绝无效格式的字符串。正确的格式是HH:mm。当用户输入不正确的格式时,我希望显示一条错误消息,但由于某些原因,它似乎没有显示JOptionFrame。奇怪的是,当我从else语句中取出JOptionPane时,它显示的很好,所以我不确定会出什么问题。有人有什么想法吗

 if (timeString.getText()!= null)
 {
   System.out.println(timeString.getText());
 }
 else
 {
   JOptionPane.showMessageDialog(null, " Incorrect format.", "Error", JOptionPane.ERROR_MESSAGE);
 }

通过执行timeString.getText()修复了此问题。它包含(“:”),即使它不能完全解决此问题。

只有在输入不为空时,而不是在格式不正确时,JOptionPane才会显示。尝试在JTextField中不输入文本,然后查看它是否显示。无论如何,我没有看到任何检查格式是否错误的东西,只有在没有输入任何内容的情况下


另一个选项是使用格式化的JSpinner作为时间输入,那么就不可能再输入其他时间了。(我知道这不是你问题的答案,但我真的建议你这样做)

你可以编写一个代码来检查格式如果我输入类似“12312”的内容,那么它就不会打印,所以它必须为空,对吗?你的意思是,它不会将输入打印到控制台,或者JOptionPane没有显示?它没有将输入打印到控制台I's ok I managed do timeString.getText()包含(“:”)。这是一个轻微的解决方法,但它可以工作。除非您设置它,否则JTextField文本不一定为空。使用
isEmpty()
检查。