#swing #focus #mouseover #jtextfield
#swing #фокус #наведение курсора мыши #jtextfield
Вопрос:
Первоначально курсор меняется на i-bar при наведении курсора мыши, но после нажатия кнопки (которая в основном вызывает setEnabled(false), а затем setEnabled(true) для JTextField) , курсор не меняется на i-bar при наведении курсора мыши на JTextField.
В чем может быть причина? Любая помощь или подсказка в правильном направлении приветствуется.
Фокус также присутствует в обоих случаях.
Ответ №1:
Попробуйте использовать setEditable(true)
/ setEditable(false)
вместо setEnabled
.
Таким образом, JTextField
файл по-прежнему будет фокусироваться, и его содержимое можно скопировать в буфер обмена, что невозможно, когда он отключен. Именно по этой причине курсор I не отображается (потому что вы не можете выбрать содержимое поля).
Редактировать (после комментариев OP):
Я попытался воспроизвести то, что вы описали, но это сработало отлично: у меня есть JTextField и 2 кнопки (одна включающая и одна отключающая); какими бы ни были манипуляции, курсор всегда имеет правильную форму, когда поле включено.
Я протестировал это поведение в Windows, 64 бит Java6, с LAF по умолчанию.
Вы обязательно должны опубликовать фрагмент, который может продемонстрировать проблему, а также рассказать больше о вашей среде.
Комментарии:
1. Спасибо, но я пытаюсь сказать, что значение из текстового поля используется для какой-то другой операции (отображение связанных данных) при щелчке BTN (вроде запроса BTN), во время которого панель, содержащая jtextfield, отключена (не подлежит редактированию), а при щелчке другого BTN (назад) отображаетсяjtextfield должен быть снова включен. Но после этого цикла работы курсор не меняется на i-bar при наведении курсора мыши на jtextfield.
2. Я не понимаю — какие другие последствия может привести setEnabled()?
3. Извините за мою ошибку, я не обратил внимания на этот момент. Было бы хорошо, если бы вы могли предоставить небольшой фрагмент для воспроизведения этой проблемы. Кроме того, интересно, что вы знаете: ваша ОС, версия JVM, внешний вид, который вы используете.
4. я пытаюсь воссоздать проблему изолированно, но тщетно. использует много собственных фреймворков. Спасибо, что сами прошли через боль, jfpoilpret . Опубликует, если произойдет какой-либо прогресс.
5. Я боюсь, что мы ничего не можем сделать, чтобы помочь дальше, пока вы не можете предоставить код, который воспроизводит то, что вы испытываете. Вы не предоставили достаточно подробностей о вашей конкретной ситуации, в частности о стеклопакете. Не ожидайте, что люди просто «угадают» вашу проблему и найдут решение.