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

在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 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?
  • ¥15 关于#vue.js#的问题:修改用户信息功能图片无法回显,数据库中只存了一张图片(相关搜索:字符串)
  • ¥15 texstudio的问题,
  • ¥15 spaceclaim模型变灰色
  • ¥15 求一份华为esight平台V300R009C00SPC200这个型号的api接口文档
  • ¥15 字符串比较代码的漏洞
  • ¥15 欧拉系统opt目录空间使用100%
  • ¥15 ul做导航栏格式不对怎么改?