Изменить цвет JTextField с помощью ActionListner

Я просто хочу, чтобы цвет снова стал белым, когда я снова нажму кнопку;

Это код, который я должен получить, чтобы изменить его при первом клике;

private void colourButton()
{
    inputField.setBackground(Color.WHITE);
}

// listener method 
public void actionPerformed( ActionEvent e)
{
    inputField.setBackground(Color.RED);
    resultMessage.setText("Colour Button Pressed");
}

Теперь я просто хочу иметь возможность щелкнуть по нему снова, цвет поля ввода должен вернуться к белому.

2 ответа

Решение
if(inputField.getBackground() == Color.RED)
{
inputField.setBackground(Color.WHITE);
} 
else
{
inputField.setBackground(Color.RED);
}

Пока у вас есть код для изменения цвета текстового поля, когда вы нажимаете кнопку, поэтому кажется, что все, что вам нужно сейчас, - это добавить условный оператор, чтобы решить, на какой цвет его менять, основываясь на том, что он уже есть.

public void actionPerformed( ActionEvent e)
{
    if (inputField.getBackground() == Color.WHITE) {
        inputField.setBackground(Color.RED);
    } else {
        inputField.setBackground(Color.WHITE);
    }
    resultMessage.setText("Colour Button Pressed");
}

Вы также можете посмотреть на фактическое изменение цвета в потоке графического интерфейса, используя что-то вроде invokeLater, Этот вопрос имеет больше информации по этому вопросу.

Другие вопросы по тегам