【问题标题】:cursor does not change to I-bar on mouseover JTextField鼠标悬停时光标不会更改为 I-bar JTextField
【发布时间】:2011-09-29 09:15:00
【问题描述】:

最初光标在鼠标悬停时变为 i-bar,但在单击按钮后(基本上在 JTextField 上调用 setEnabled(false) 和 setEnabled(true)),鼠标悬停时光标不会变为 i-bar JTextField .

可能是什么原因?非常欢迎任何正确方向的帮助或提示。

在这两种情况下也都存在焦点。

【问题讨论】:

    标签: swing focus mouseover jtextfield


    【解决方案1】:

    尝试使用setEditable(true) / setEditable(false) 而不是setEnabled

    因此,JTextField 仍然可以聚焦,并且可以将其内容复制到剪贴板中,这在禁用时是不可能的。这就是 I 光标不显示的原因(因为您无法选择字段内容)。

    编辑(在 OP cmets 之后):

    我试图重现您所描述的内容,但效果很好:我有一个 JTextField 和 2 个按钮(一个启用器和一个禁用器);无论进行何种操作,当启用该字段时,光标始终具有正确的形状。

    我已经在 Windows、Java6 64 位、默认 LAF 上测试了这种行为。

    您绝对应该发布一个可以证明问题并详细说明您的环境的 sn-p。

    【讨论】:

    • 谢谢,但我在这里想说的是来自文本字段的值用于 BTN(查询 BTN 排序)上的一些其他操作(显示相关数据)单击其中包含 jtextfield 的面板被禁用(不应编辑)并且单击另一个 BTN(返回)时,将再次启用 jtextfield。但是经过这个循环的操作,鼠标悬停在jtextfield上,光标并没有变成i-bar。
    • 我不明白 - setEnabled() 会导致什么其他影响?
    • 对不起,我的错误,我没有注意这一点。如果您可以提供一个小的 sn-p 来重现该问题,那就太好了。此外,您知道的很有趣:您的操作系统、JVM 版本、您使用的外观。
    • 我试图孤立地重现问题,但徒劳无功。使用了很多内部框架的东西。感谢您自己经历痛苦,jfpoilpret。如果有任何进展将发布。
    • 我担心我们无法提供进一步的帮助,只要您无法提供重现您体验的代码。您没有提供有关您的具体情况的足够详细信息,尤其是玻璃板的东西。不要指望人们只是“猜测”您的问题并提出解决方案。
    猜你喜欢
    • 2015-09-27
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 2022-01-26
    • 2021-11-27
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多