パラメータ/引数をアクション イベントに渡す方法がわかりません。このプログラムは、ランダムなタイム テーブル「フラッシュ カード」を生成し、それを正しい答えと比較して、入力が正しかったかどうかをユーザーに知らせる出力をコンソールに返すことになっています。エディターは、クラスを抽象化する必要があると言っていますが、明らかにそれは解決策ではありません。
public class MultiplicationGui {
public static void main(String[] args)
{
//new JFrame
JFrame myJFrame = new JFrame();
//Attributes
myJFrame.setTitle("Multiplication Gui");
myJFrame.setSize(240, 200);
myJFrame.setLocation(200, 100);
myJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// make the frame visible
myJFrame.setVisible(true);
}
}//end class
class timesTableFrame extends JFrame implements ActionListener
{
JLabel jlblNote = new JLabel("This GUI gets data from a text field");
JLabel prompt = new JLabel("Please enter your answer");
JTextField jtfAnswer = new JTextField(20);
// constructor
public timesTableFrame()
{
setLayout(new FlowLayout(FlowLayout.CENTER));
add(jlblNote);
add(prompt);
add(jtfAnswer);
// register TextFieldFrame (this method) as the listener for jtfName
jtfAnswer.addActionListener(this);
} // end TextFieldFrame() constructor
public void actionPerformed(ActionEvent e, int answer)
{
// capture the name from the text field and reset the field
double response=Double.parseDouble(jtfAnswer.getText());
jtfAnswer.setText("");
// output a message using the name to the console
if (response == answer)
System.out.println("Congratulations. You are correct!");
else if (response != answer)
System.out.println("Sorry, the correct answer is "+answer);
// dispose of the frame (this frame)
this.dispose();
} // end actionPerformed(ActionEvent e)
//********************************************************************
class generateArray
{
public int generateArray()
{
int i, j;//variables to iterate over array
int answer;//hold answer from indices into array
int MDArray[][]=new int [13][13];//new md array for table
//use nested for to populate array
for(i=0; i<13; i++)
for(j=0; j<13; j++)
MDArray[i][j]=i*j;
//generate two random numbers from 0-13 to be used as indices into array
int index1=(int)(Math.random()*13);
int index2=(int)(Math.random()*13);
//populate answer variable and return
answer = MDArray[index1][index2];
return answer;
}
} }