私はactionPerformedで自分のコードに問題があります。コードは2つのラベルと1つのテキストフィールドを表示する必要があります。私の問題はラベルq = new JLabel(x + " x " + y)
が前のアクションのxとyを表示していることです。実行されます。つまり、ラベルのxとyは1ステップ後です。私はあなたが変化しているように見えます..私はちょうどラベルがxの現在の値で更新する必要があるとy.Hereは私のコードで、JLabelの変数の更新が遅れています
public class Multiplication extends JFrame implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 5551059254300001091L;
private int x, y, z, i;
private JLabel q, w;
private JTextField a;
public Multiplication(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
q = new JLabel(x + " x " + y);
w = new JLabel("Score = 0");
a = new JTextField(5);
add(q);
add(a);
add(w);
pack();
setVisible(true);
a.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
Random random = new Random();
x = random.nextInt(10) + 1;
y = random.nextInt(10) + 1;
q.setText(x + " x " + y);
z = x*y;
int s = Integer.parseInt(a.getText());
if(s == z){
w.setText("Score = "+ i++);
}
else{
JOptionPane.showMessageDialog(null, "Correct answer is: " + z);
}
}
public static void main(String[] args){
new Multiplication();
}
}
まずコードをデバッグする必要があります。あなたは? – Omore