1

クラス用のアプレットを作成しようとしています。

私は、考えられる 2 つのユーザー入力ミスを処理することになっています。if/else ステートメントでゼロ除算を処理しました。

でも。ユーザーが数字の代わりに文字や記号をテキスト ボックスに入力しようとした場合に例外を処理しようとしていますが、私の catch ステートメントでは問題をキャッチできません。代わりに、0 による除算の else ステートメントを実行します。ご覧になり、お手伝いできることがあればお知らせください

 /*
 * Curtis Sizemore
 * IT 259 - Intermediate Java
 * Unit 8
 * Working with Applets
 * I attest that this is a product of my own creation.
 * 
 */
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;

/**
 *
 * @author Curtis
 */
public class JDivide extends JApplet implements ActionListener
{
JTextField numer = new JTextField(5);
JTextField denom = new JTextField(5);
JLabel intro = new JLabel("Please enter two numbers.");
JLabel num = new JLabel("Numerator: ");
JLabel den = new JLabel("Denominator: ");
JLabel result = new JLabel();
JButton solve = new JButton("Click Me to Solve!");
Container con = getContentPane();
double numerator;
double denominator;
 double quotient;
 String n;
String d;
 String q;


@Override
public void init()
{
    con.setLayout(new FlowLayout());
    con.add(intro);
    con.add(num);
    con.add(numer);
    con.add(den);
    con.add(denom);
    con.add(solve);
    con.add(result);
    solve.addActionListener(this);
}

@Override
public void actionPerformed(ActionEvent e) 
{



      n = numer.getText();
      d = denom.getText();
    try
      {
      double numerator = Double.parseDouble(n);
    double denominator = Double.parseDouble(d);
      }
      catch(NumberFormatException x)
      {
      result.setText("Numbers Only Please.");
      }


      if(denominator==0)
      {
      result.setText("Division by 0 is undefined.");
      }
      else
      {
      double quotient = numerator/denominator;
      q = Double.toString(quotient);
      result.setText(q);
}
 }

}
4

1 に答える 1

2

残りのコードを try ブロック内に配置するか、例外をスローする必要があります。それ以外の場合、数値以外が入力された場合でも、メソッドは商を計算しようとします。

于 2012-07-11T00:34:36.487 に答える