我想用Numberfield和一个按钮做一个Java程序。当您单击它等待的按钮时,放入Numberfield.The整数中的时间可以正常工作,但该函数不起作用。
以下是代码:
public void jButton1_ActionPerformed(ActionEvent evt) {
sekunden = Integer.parseInt(jNumberField3.getText());
minuten = Integer.parseInt(jNumberField2.getText());
stunden = Integer.parseInt(jNumberField1.getText());
zeit = sekunden + minuten*60 + stunden*60*60;//berechnet die zeit in sekunden
TimeUnit.SECONDS.sleep(zeit);//here is the error
System.out.println("zeit");
} // end of jButton1_ActionPerformed错误消息如下所示:
ES.java:78:27: error: unreported exception InterruptedException; must be caught or declared to be thrown TimeUnit.SECONDS.sleep(zeit);发布于 2015-04-24 12:01:45
方法调用TimeUnit.SECONDS.sleep(zeit)抛出一个必须捕获的InterruptedException:
public void jButton1_ActionPerformed(ActionEvent evt) {
try {
sekunden = Integer.parseInt(jNumberField3.getText());
minuten = Integer.parseInt(jNumberField2.getText());
stunden = Integer.parseInt(jNumberField1.getText());
zeit = sekunden + minuten*60 + stunden*60*60;//berechnet die zeit in sekunden
TimeUnit.SECONDS.sleep(zeit);//here is the error
System.out.println("zeit");
}catch (InterruptedException e){
//handle the exception
}
}发布于 2015-04-24 12:02:26
您需要处理调用sleep()时可能发生的潜在sleep()。这就是为什么您的代码会出现编译错误。
请查看捕获和处理异常 on JavaDocs,了解有关异常处理的更多细节。
在您的情况下,您可以通过处理异常很容易地解决这个问题,例如:
public void jButton1_ActionPerformed(ActionEvent evt) {
sekunden = Integer.parseInt(jNumberField3.getText());
minuten = Integer.parseInt(jNumberField2.getText());
stunden = Integer.parseInt(jNumberField1.getText());
zeit = sekunden + minuten*60 + stunden*60*60;//berechnet die zeit in sekunden
try {
// tries to call sleep
TimeUnit.SECONDS.sleep(zeit);//here is the error
} catch (InterruptedException e) {
// handles any possible exception during the call to "sleep()"
e.printStackTrace(); // prints the exception stack trace to the console
}
System.out.println("zeit");
} // end of jButton1_ActionPerformed在异常处理中,一些很好的参考如下:
https://stackoverflow.com/questions/29846893
复制相似问题