Почему 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)