快乐至上!~ 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 + "");
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 删除和修改功能无法调用
  • ¥15 kafka topic 所有分副本数修改
  • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
  • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
  • ¥40 串口调试助手打开串口后,keil5的代码就停止了
  • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
  • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
  • ¥50 C++五子棋AI程序编写
  • ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。
  • ¥15 SQL Server analysis services 服务安装失败