Ich habe ein Problem in meinem Code bei der actionPerformed. Der Code sollte 2 Etiketten und ein Textfeld zeigen, mein Problem hier ist, dass das Label q = new JLabel(x + " x " + y)
zeigt x und y der vorherigen Aktion durchgeführt, was bedeutet, dass x und y der Beschriftung einen Schritt zurück sind, versuchte ich, die Stelle der Beschriftung aber zu manipulieren ich konnte keine Lösung finden, ich brauche nur das Etikett mit den aktuellen Werten von x aktualisiert werden und y.Here ist mein Code ..Spätes Update der Variablen in JLabel Java
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();
}
}
Sie sollten zuerst Ihren Code debuggen. Hast du? – Omore