курсор не меняется на I-bar при наведении мыши JTextField

Первоначально курсор изменяется на i-bar при наведении курсора мыши, но после нажатия кнопки (которая в основном вызывает setEnabled(false), а затем setEnabled(true) в JTextField) курсор не меняется на i-bar при наведении мыши на JTextField.

Что может быть причиной? Любая помощь или подсказка в правильном направлении приветствуются.

Фокус также присутствует в обоих случаях.


person particle_ms    schedule 29.09.2011    source источник


Ответы (1)


Попробуйте использовать setEditable(true) / setEditable(false) вместо setEnabled.

Таким образом, JTextField по-прежнему будет доступен для фокусировки, и его содержимое можно будет скопировать в буфер обмена, что невозможно, когда он отключен. Вот почему курсор I не отображается (потому что вы не можете выбрать содержимое поля).

Изменить (после комментариев ОП):

Я попытался воспроизвести то, что вы описали, но это сработало отлично: у меня есть JTextField и 2 кнопки (один активатор и один деактиватор); какими бы ни были манипуляции, курсор всегда имеет правильную форму, когда поле включено.

Я тестировал это поведение в Windows, Java6 64 бит, с LAF по умолчанию.

Вы обязательно должны опубликовать фрагмент, который может продемонстрировать проблему, а также рассказать больше о вашей среде.

person jfpoilpret    schedule 29.09.2011
comment
Спасибо, но я пытаюсь сказать, что значение из текстового поля используется для какой-то другой операции (отображение связанных данных) при нажатии BTN (своего рода запроса BTN), во время которого панель, содержащая jtextfield, отключена (не следует редактировать) и при нажатии другой кнопки BTN (назад) поле jtext должно быть снова включено. Но после этого цикла работы курсор не меняется на i-bar при наведении мыши на jtextfield. - person particle_ms; 29.09.2011
comment
Я не понимаю - к каким еще последствиям может привести setEnabled()? - person particle_ms; 29.09.2011
comment
Извините за ошибку, не обратил внимания на этот момент. Было бы хорошо, если бы вы могли предоставить небольшой фрагмент, чтобы воспроизвести эту проблему. Кроме того, интересно, что вы знаете: вашу ОС, версию JVM, внешний вид, который вы используете. - person jfpoilpret; 29.09.2011
comment
Я пытаюсь воссоздать проблему изолированно, но тщетно. использует много внутренних фреймворков. Спасибо, что сам прошел через боль, jfpoilpret. Будет сообщение, если какой-либо прогресс произойдет. - person particle_ms; 29.09.2011
comment
исключая возможность какой-либо внешней среды, так как проблема только с некоторыми jframes, другие работают нормально. но не могу понять разницу - person particle_ms; 29.09.2011
comment
также в некоторых случаях курсор не меняется на i -bar даже до того, как будет выполнено какое-либо отключение/включение, - person particle_ms; 29.09.2011
comment
может ли кто-нибудь помочь найти, как изменение курсора при наведении курсора реализовано в качании - person particle_ms; 29.09.2011
comment
застрял сейчас! любые намеки о том, где я должен искать. стекло может быть виновато? или setBounds(..)? - person particle_ms; 30.09.2011
comment
Я боюсь, что мы ничем не сможем помочь, пока вы не сможете предоставить код, воспроизводящий то, что вы испытываете. Вы не предоставили достаточно подробностей о вашей конкретной ситуации, в частности о стекле. Не ждите, что люди просто догадаются о вашей проблеме и предложат решение. - person jfpoilpret; 30.09.2011