快乐至上!~ 2019-05-24 19:38 采纳率: 50%
浏览 848
已采纳

在myeclipse中的可视化界面监听器自定义异常

求教大佬~为什么系统无法弹出消息框表明我自定义的异常"请在输入框内输入整数!"

要求:读入两个数据(Java Aplication命令行参数输入、或通过GUI输入),并计算它们的和,然后将和显示输出。编程自定义异常OnlyOneException(只有一个参数)与NoOprandException(无参数)。如果参数的数目不足,显示相应提示信息并退出程序的执行。

1.带参数异常代码
图片说明

2.无参数异常代码
图片说明

3.计算器的界面
图片说明

4.监听器代码如下:

```private void jTextField3FocusGained(java.awt.event.FocusEvent evt) {
if (jTextField1.getText().equals(null)
|| jTextField2.getText().equals(null)) {
try {
throw new OnlyOneException("请在输入框内输入整数!");
} catch (OnlyOneException e) {
JOptionPane.showMessageDialog(this, e.getMessage());
}
} else if (jTextField1.getText().equals(null)
&& jTextField2.getText().equals(null)) {
try {
throw new NoOprandException();
} catch (NoOprandException e1) {
e1.printStackTrace();
}
}

    int n1 = Integer.parseInt(jTextField1.getText());
    int n2 = Integer.parseInt(jTextField2.getText());
    int n3 = n1 + n2;
    jTextField3.setText(n3 + "");

}

private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {
    Scanner sc = new Scanner(System.in);
    String n2 = sc.next();
    jTextField1.setText(n2);
}

private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
    Scanner sc = new Scanner(System.in);
    String n1 = sc.next();
    jTextField1.setText(n1);
}
  • 写回答

1条回答 默认 最新

  • 快乐至上!~ 2019-05-26 16:16
    关注

    已解决

    private void jTextField3FocusGained(java.awt.event.FocusEvent evt){
            try{
                if(this.jTextField1.getText().isEmpty()&&this.jTextField2.getText().isEmpty()){
                    throw new NoOprandException("请在两输入框内分别输入两个整数!");
                }
                if(this.jTextField1.getText().isEmpty()||this.jTextField2.getText().isEmpty()){
                    throw new OnlyOneException("请在输入框内输入另一个整数!");
                }
    
            }catch(NoOprandException e1){
                JOptionPane.showMessageDialog(this, e1.getMessage());
            }catch(OnlyOneException e){
                JOptionPane.showMessageDialog(this, e.getMessage());
            }
            int n1 = Integer.parseInt(jTextField1.getText());
            int n2 = Integer.parseInt(jTextField2.getText());
            int n3 = n1 + n2;
            jTextField3.setText(n3 + "");
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器