Java 在继续代码中的下一项之前,是否有一种方法可以自行解决问题
我搜索了这个网站、甲骨文和其他网站都没有结果 我的程序有几个问题,但现在我只想解决一个 首先,让我发布我的程序中有问题的部分 验证方法Java 在继续代码中的下一项之前,是否有一种方法可以自行解决问题,java,swing,exception,Java,Swing,Exception,我搜索了这个网站、甲骨文和其他网站都没有结果 我的程序有几个问题,但现在我只想解决一个 首先,让我发布我的程序中有问题的部分 验证方法 private void verifyAge() { String ca = iP.cAge.getText(); try { a = Integer.parseInt(ca); if (a < 0 || a > 120) { JOpt
private void verifyAge()
{
String ca = iP.cAge.getText();
try
{
a = Integer.parseInt(ca);
if (a < 0 || a > 120)
{
JOptionPane.showMessageDialog(null,"Enter number between 0"
+ " and 120", "Input Error",JOptionPane.ERROR_MESSAGE);
iP.cAge.setText("");
}
}
catch(NumberFormatException afe)
{
JOptionPane.showMessageDialog(null, "Must Enter Number", "Input"
+ " Error", JOptionPane.ERROR_MESSAGE);
iP.cAge.setText("");
}
}
private void verifyAge()
{
字符串ca=iP.cAge.getText();
尝试
{
a=整数.parseInt(ca);
如果(a<0 | | a>120)
{
JOptionPane.showMessageDialog(null,“输入0之间的数字”
+“和120”,“输入错误”,作业窗格。错误消息);
iP.cAge.setText(“”);
}
}
捕获(数字格式异常afe)
{
JOptionPane.showMessageDialog(空,“必须输入编号”,“输入”
+“错误”,作业窗格。错误消息);
iP.cAge.setText(“”);
}
}
我有一个文件监听器,这段代码将进入其中。在代码中继续之前,它需要运行并循环,直到错误被修复。有人有什么建议吗?请举例说明。要做到这一点,你有两个选择:
我不确定我是否正确理解了你的第二个问题。据我所知,即使addFile方法引发异常,您也希望继续该程序。对于这种情况,您需要将addFile方法调用包装在一个单独的try-catch中。如果程序在逻辑上可以继续执行addfile失败,则不需要从异常情况下执行的操作返回。只需在catch中记录addFile失败的错误,并在catch语句之后继续执行其余代码。实现此目的有两种选择:
我不确定我是否正确理解了你的第二个问题。据我所知,即使addFile方法引发异常,您也希望继续该程序。对于这种情况,您需要将addFile方法调用包装在一个单独的try-catch中。如果程序在逻辑上可以继续执行addfile失败,则不需要从异常情况下执行的操作返回。只需在catch中记录addFile失败的错误,并在catch语句之后继续执行其余代码。首先,创建一个新的
异常
,称为类似验证异常
。让每个方法都抛出这个。您现在需要在ActionListener
中捕获它。这样,当一个方法失败时,就可以停止所有其他方法的执行
其次,您需要某种方法来突出显示或聚焦失败的字段
您可以使用组件
(例如)invalidField
。如果这不是null
(在actionPerformed
方法中),您可以调用requestFocusInWindow
将焦点控制返回到该字段
每个验证方法在抛出其
ValidationException
之前都需要设置此项。首先,创建一个名为ValidationException
的新异常。让每个方法都抛出这个。您现在需要在ActionListener
中捕获它。这样,当一个方法失败时,就可以停止所有其他方法的执行
其次,您需要某种方法来突出显示或聚焦失败的字段
您可以使用组件
(例如)invalidField
。如果这不是null
(在actionPerformed
方法中),您可以调用requestFocusInWindow
将焦点控制返回到该字段
每个验证方法在抛出其ValidationException
@Juned Ahsan之前都需要设置此值。有人能给我一些示例,说明返回值是什么,以及if/else语句是什么样子的吗?或者是验证类的一个例子。@AmyMorin boolean可能是一个不错的选择。试试这个:私有布尔校验页(){String ca=iP.cAge.getText();布尔返回值=true;试试{a=Integer.parseInt(ca);if(a<0 | | a>120){JOptionPane.showMessageDialog(null,“输入介于0“+”和120之间的数字”,“输入错误”,JOptionPane.Error\u消息);iP.cAge.setText(“”);returnValue=false;}catch(NumberFormatException afe){JOptionPane.showMessageDialog(null,“必须输入数字”,“输入“+”错误”,JOptionPane.Error_消息);iP.cAge.setText(“”;returnValue=false;}returnValue;}@JunedAhsan感谢您的帮助。但我最终通过创建InputVerifier类实现了它。@AmyMorin很棒!我很高兴您能实现它。帮助付出努力的人总是令人愉快的:-)@Juned Ahsan有人能给我一些示例,说明返回值是什么以及if/else语句是什么样子的吗?或