Изменить цвет 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
, Этот вопрос имеет больше информации по этому вопросу.