Наиболее вероятное объяснение состоит в том, что ваш поток кода никогда не входит в родительский блок if
, который показывает диалог сообщения. Как указано в комментарии к вашему вопросу, это, скорее всего, связано с тем, что вы сравниваете две строки, используя оператор ==
вместо метода equals(String)
. Прочитайте здесь для получения дополнительной информации о разнице между этими двумя способами сравнения строк.
Это краткое резюме ответа, связанного выше:
Метод equals () сравнивает «значение» внутри экземпляров String (в куче) независимо от того, ссылаются ли эти две ссылки на один и тот же экземпляр String.
Оператор "==" сравнивает значение двух ссылок на объекты, чтобы определить, ссылаются ли они на один и тот же экземпляр String.
Вот так должен выглядеть ваш код:
String response = "Unknown";
if (colour.equals("Red")) {
response = shade < 5 ? "Light Red" : "Dark Red";
}
JOptionPane.showMessageDialog(null, "Your colour is " + response);
Обратите внимание, что я взял на себя некоторую свободу в сокращении присваивания нового значения полю response
(поскольку это должно сделать его более компактным и читаемым) и переместил метод showMessageDialog
за пределы блока if
(как предложил @CarlosHeuberger), чтобы он отображал сообщение, даже если выбранный пользователем цвет не красный.