当我按下 sTime 等于的 JOptionPane.showInputDialog 窗口上的取消按钮时,如何防止此代码中出现 NullPointerException?(它位于“>>”标志处)
我的代码:
insertTableF.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e)
{
int wayPoint1 = 0;
int wayPoint2 = 0;
int PassTime = 0;
Statement statementR;
if (loggedIn == 1)
{
while(passedR ==0)
{
try
{
if (wayPoint1==0)
{
sTagR =JOptionPane.showInputDialog("Please enter the Rhino Tag number:");
iTagR = Integer.parseInt(sTagR);
wayPoint1 =1;
}
if (wayPoint2==0)
{
sGPSX = JOptionPane.showInputDialog("Please enter the horizontal GPS Grid Numbers(eg.3123):");
iGPS = Integer.parseInt(sGPSX);
wayPoint2 = 1;
}
sGPSY = JOptionPane.showInputDialog("Please enter the vertical GPS Grid Letters(eg.XXYY:");
while (PassTime ==0)
{
sTime = JOptionPane.showInputDialog("Please enter the Last date you saw the Rhino(YYYY-MM-DD):");
if (sTime != "")
{
if (isValidDate(sTime))
{
PassTime = 1;
}
else
{
JOptionPane.showMessageDialog(null, "Please use the date format YYYY-MM-DD.");
}
}
else
{
JOptionPane.showMessageDialog(null, "Please use the date format YYYY-MM-DD.");
}
}
sLocation = JOptionPane.showInputDialog("Please enter the Last place you saw the Rhino:");
passedR =1;
}
catch (NumberFormatException nfe)
{
passedR =0;
JOptionPane.showMessageDialog(null, "Please use numbers for the Rhino Tag field.");
}
}
}
}
});
我的格式代码:
boolean isValidDate(String input) {
if (input == null){
try {
format.setLenient(false);
format.parse(input);
return true;
}
catch(ParseException e){
return false;
}
}
return false;
}
对不起,很长的帖子。提前致谢。
这是我收到的错误消息:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at java.text.SimpleDateFormat.parse(SimpleDateFormat.java:1235)
at java.text.DateFormat.parse(DateFormat.java:335)
at RhinoGUI.isValidDate(RhinoGUI.java:92)
at RhinoGUI$8.actionPerformed(RhinoGUI.java:507)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6288)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6053)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4651)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:602)
at java.awt.EventQueue$1.run(EventQueue.java:600)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:616)
at java.awt.EventQueue$2.run(EventQueue.java:614)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)