快乐至上!~ 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 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能