Попробуйте заменить shape == "oval"
на "oval".equals(shape)
. В Java строки, равные по equals()
, не обязательно равны по ==
.
Кроме того, я бы посоветовал вам заменить строковые литералы константами:
class Whatever {
private final static String OVAL = "oval";
public void process(String arg) {
if (OVAL.equals(arg)) {
// Do something
}
}
}
чтобы избежать проблем с орфографическими ошибками (как у вас с "rectangle" и "rectanle").
Вы можете добавить операторы отладки, чтобы проверить, что метод actionPerformed
действительно вызывается, и посмотреть, когда выполняется paintComponent
, и отследить, какой путь он проходит через ваш код.
Кстати, размещенный код не должен компилироваться: у вас несоответствующие скобки.