Причина, по которой ваш код не работает, заключается в том, что оба оператора if
оцениваются как true
, поэтому оба выполняются
Есть несколько способов сделать это, вероятно, самый простой - просто проверитьсостояние текста на этикетке и принять решение о том, что делать, например ...
public void actionPerformed(ActionEvent event) { if(event.getSource() == jbutton) jlabel.setText("Updated Text");
if(event.getSource() == jbutton) {
if (!jlabel.getText().equals("Old Text")) {
jlabel.setText("Old Text");
} else {
jlabel.setText("Updated text");
}
}
}
Теперь, если вы хотите быть "действительно" модным, вы можете использовать немногомодульная математика ...
private int trigger = 0;
@Override
public void actionPerformed(ActionEvent e) {
trigger++;
if ((trigger % 2) == 0) {
label.setText("Old text");
} else {
label.setText("Updated text");
}
}