Почему if(str.equals(null)) не выполняется если str равна null в Java?

Задача этой функции написать дату в JTextArea. Перед тем как написать она должна проверить выделил ли пользователь текст или нет. Проблема в том, что если пользователь не выделит и вызовет функцию то она выдаст ошибку, а если пользователь выделит текст, то она спокойно заменит выделенный текст на дату. Как решить проблему? Спасибо.

JTextArea jta = new JTextArea();

static void printdate() {
        String selectedtext = jta.getSelectedText();
        System.out.print(selectedtext);
        if(selectedtext.equals(null)) {
            Calendar calendar = Calendar.getInstance();
            jta.append(calendar.get(Calendar.HOUR) + ":" + calendar.get(Calendar.MINUTE) + " " + calendar.get(Calendar.DAY_OF_MONTH) + "." + calendar.get(Calendar.MONTH) + "." + calendar.get(Calendar.YEAR));
            return;
        }else {
            System.out.print(selectedtext);
            Calendar calendar = Calendar.getInstance();
            jta.replaceSelection(calendar.get(Calendar.HOUR) + ":" + calendar.get(Calendar.MINUTE) + " " + calendar.get(Calendar.DAY_OF_MONTH) + "." + calendar.get(Calendar.MONTH) + "." + calendar.get(Calendar.YEAR));
        }
        
    }

Ответы (1 шт):

Автор решения: Agzam4

Судя по комментариям Вы уже нашли ответ, но все же попробуйте мой вариант:

static void printdate() {
        String data = new SimpleDateFormat("hh:mm dd.MM.yyyy").format(new java.util.Date());
        if(jta.getSelectedText() == null) {
            jta.append(data);
            return;
        }else {
            jta.replaceSelection(data);
        }
    }

(Я обнаружил, что в Ваш код "не красиво" выводит дату, да к тому же мне кажется, то не правильно выдает Calendar.MONTH)

→ Ссылка