📄 dividebyzerotest.java
字号:
import java.text.DecimalFormat;import javax.swing.*;import java.awt.*;import java.awt.event.*;public class DivideByZeroTest extends JFrame implements ActionListener{ private JTextField input1,input2,output; private int number1,number2; private double result; public DivideByZeroTest() { super("Demonstrating Exception"); Container c=getContentPane(); c.setLayout(new GridLayout(3,2)); c.add(new JLabel("第一个数",SwingConstants.RIGHT)); input1=new JTextField(10); c.add(input1); c.add(new JLabel("第二个数",SwingConstants.RIGHT)); input2=new JTextField(10); c.add(input2); input2.addActionListener(this);//第二个文本域注册了ActionListener事件的监听器 c.add(new JLabel("结果",SwingConstants.RIGHT)); output=new JTextField(); c.add(output); setSize(425,100); show(); } public void actionPerformed(ActionEvent e)//对应ActionEvent事件的方法 { DecimalFormat precision3=new DecimalFormat("0.000"); output.setText("这里可以得到结果哦"); try { number1=Integer.parseInt(input1.getText()); number2=Integer.parseInt(input2.getText()); result=quotient(number1,number2); output.setText(precision3.format(result)); } catch(NumberFormatException nfe)//捕获数据类型错误 { JOptionPane.showMessageDialog(this, "你需要输入正确的数字", "数字类型错误", JOptionPane.ERROR_MESSAGE); } catch(DivideByZeroException dbze)//捕获自定义除数为零的错误 { JOptionPane.showMessageDialog(this, dbze.toString(),"除数为零,请修改", JOptionPane.ERROR_MESSAGE); } } public double quotient(int numberator,int denominator) throws DivideByZeroException { if(denominator==0) { throw new DivideByZeroException(); } return (double) numberator/denominator; } public static void main(String[] args) { DivideByZeroTest app=new DivideByZeroTest(); //给窗口注册WindowListener事件,用到了一个匿名类进行事件处理 //匿名类里面是实现了一个适配器接口 app.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { e.getWindow().dispose(); System.exit(0); } } ); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -