Я создал окно с помощью JFrame, и на моем JPanel я добавил 3 компонента: 2 JTextFields ("field1" и "field2") и между ними JButton ("switch"). Моя цель - переключить значение поля1 в поле2 и наоборот, когда щелкнет JButton. Я думал, что этот ActionListener, который я добавил в мой JButton, достиг бы моей цели:
public void actionPerformed(ActionEvent e) {
field2.setText(field1.getText());
field1.setText(field2.getText());
}
Однако он меняет значение поля2 на значение поля1, но не наоборот.
Любая помощь будет оценена по достоинству.
Вам нужно временно изменить todo. Если вы не используете его, вы устанавливаете текст из поля1 в поле2, а затем получаете неправильное значение.
public void actionPerformed(ActionEvent e) {
String tmp= field2.getText()
field2.setText(field1.getText());
field1.setText(tmp);
}
Для его хранения требуется временная переменная.
В настоящее время поле2 сначала устанавливается на все, что находится в поле1, а затем вы устанавливаете поле1 в то, что вы только что установили field2. Вы должны временно сохранить контент, прежде чем перезаписать его:
String temp = field2.getText();
field2.setText(field1.getText());
field1.setText(temp);