0

私は正直に言うと、私は任務に取り組んでいて、立ち往生していません。ユーザーが 10 個の数字を入力できる単純な Java アプレットを作成しています。プログラムはその入力をサニタイズし、数字のみが入力されていること、および数字が 0 から 9 の間でなければならないことを確認します。

これまでのところ問題はありません。与えられた例を使用し、Web を検索して適切な構文とロジックを探しました。私のコードは文句なしにコンパイルされます。ただし、最初の数字を試してみると、有効な入力がある限り、プログラムが起動し、入力した数字が最大であり、10 個の数字を入力するのを待ちません。

私の推測では、アプレット プログラムの半分があり、出力が正しくないか、ループ内の何かが間違っていると思われますが、ロジックは適切に見えます。

言及するのをほとんど忘れていました。アプレットで出力テキストを作成する方法がわかりません。それに関するヘルプは素晴らしいですが、それは私の主な関心事ではありません。

私の現在のコード:

import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import javax.swing.JOptionPane;

public class largest extends Applet implements ActionListener{
private static final long serialVersionUID = 1L;


//Create components for Applet
Label numberLabel = new Label("Enter a number:");
TextField numberField = new TextField(10);  // Sets the size of the text field, You still may type as much data into the field that you want, input will need to be sanitized later

Label topNumberLabel = new Label("The top number is:");
Button calcButton = new Button("Ok");
public void init()
{
    // Add controls to the applet window
    add(numberLabel);
    add(numberField);
    add(topNumberLabel);
    add(calcButton);
    calcButton.addActionListener(this);
    setSize(300, 200);  // Sets the size of the applet window
}

public void actionPerformed(ActionEvent e) {
    // Variables for counting, user input, and storage for largest number
    double counter = 0;
    double number = 0;
    double largest = 0;

    // Allows user to input 10 times
    while (counter<10)
    {
        try { //Sanitize user input, make sure input entered is a number
            number = Double.parseDouble(numberField.getText());
        } catch (NumberFormatException ex) {
            numberField.requestFocus();
            JOptionPane.showMessageDialog(null, "Input invalid, please enter an integer",
                    "///-D-A-T-A---E-R-R-O-R-\\\\\\", JOptionPane.ERROR_MESSAGE);
            return;
        }
        if (number < 0 || number > 9) { //Sanitize user input, make sure the given number is between 0 and 9
            numberField.requestFocus();
            JOptionPane.showMessageDialog(null,
                    "The number entered must be between 0 and 9",
                    "///-D-A-T-A---E-R-R-O-R-\\\\\\", JOptionPane.ERROR_MESSAGE);
            return;
        }
        counter++;

    // Determine what the largest number entered is by comparing to a baseline
    // of previous numbers or zero if just beginning loop
    if (number > largest)largest=number;

    }

        // Display's the largest number that got entered by user
        JOptionPane.showMessageDialog(null," The largest number entered was " + largest);
    }

}

4

2 に答える 2