0

私はこの 1 週間ほど、Java を独学で学んでいます。私はプログラミングが初めてです。コードは正常にコンパイルされますが、アプレットにテキスト フィールドが表示genRandomNumbers()されず、メソッドが呼び出されません。そのため、ユーザーに 2 つの数値を乗算するよう求める質問は、アプレットに表示されません。

私のコードでgenRandomNumber()は、から呼び出されていinit()ます。それは問題を引き起こす可能性がありますか?代わりに paint() からこれを実行しようとしました。これにより、より大きな問題が発生しました。アプレットにテキスト フィールドが表示されませんでした。そこで、 への呼び出しを にgenRandomNumber()戻しましたinit()

"Start: applet window not initialized"ステータス領域にアプレット ウィンドウが表示されます。

正しい方向に私を向けることができますか?どんな助けでも大歓迎です!

これが私のコードです:

 //Generate 2 random numbers
 //Post a question to multiply the two numbers
 //Verify the answer entered
 //Post a new question if the solution is correct

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

public class LearnMultiplication extends JApplet implements ActionListener
{

   JLabel answerLabel;
   JTextField answerTextField, commentTextField, questionTextField;
   int random1, random2;

   public void init()
   {
   Container c = getContentPane();
   c.setLayout(new FlowLayout() );

   JTextField questionTextField = new JTextField(30);
   c.add(questionTextField);

   JLabel answerLabel = new JLabel("Enter you answer here");
   c.add(answerLabel);

   JTextField answerTextField = new JTextField(5);
   answerTextField.addActionListener(this);
   c.add(answerTextField);   

   JTextField commentTextField = new JTextField(30);
   c.add(commentTextField);

   genRandomNumbers(); // invoke method to generate 2 random numbers
   }



   public void actionPerformed (ActionEvent e)
   {
      int a = Integer.parseInt(e.getActionCommand() ); 
      verifyAnswer(a); // invoke method to verify the product
   }

   //method to generate 2 random numbers
   public void genRandomNumbers()
   {
        random1= 1 + (int)(Math.random() * 9    );    
        random2 = 1 + (int)(Math.random() * 9   );
        questionTextField.setText("Multiply " + Integer.toString(random1) + "and " + Integer.toString(random2) + ".");

  }  

   // method to verify the product of the 2 random numbers
   public void verifyAnswer(int answer)
   {
      int correctAnswer = random1 * random2;

      if ( correctAnswer == answer)
      {
         commentTextField.setText("Very Good!");
         genRandomNumbers(); //call the method again to generate 2 new random numbers
      }  
      else
      {
         commentTextField.setText("No, try again!!");
      }  

    }
}   
4

1 に答える 1