【问题标题】:how to hide the insert caret in a JTextField?如何隐藏 JTextField 中的插入符号?
【发布时间】:2016-01-14 09:05:22
【问题描述】:

我正在使用 JavaSwing 工具包用 Java 制作一个计算器程序,我希望它类似于 Windows' (默认)计算器。

我有一个JTextField 用于输入数字。您可以看到正在显示的光标。我想隐藏它。

我试过这样做:

textField.getCaret().setVisible(false);

但这没有帮助。我还尝试在创建和初始化窗口之前和之后调用它,但它仍然不起作用。光标在那里。

我查阅了 JTextFieldCaret 文档,但没有找到任何对我有用的东西,除了无效的 setVisible() 方法。

如何隐藏插入符号/光标?

【问题讨论】:

  • This example 使用自定义的“空白”插入符号基本上可以实现您正在寻找的结果
  • @MadProgrammer 成功了,谢谢!
  • 不确定这是否是最好的解决方案,所以看看其他人是否有一些想法可能会很有趣,但很高兴它可以在短期内有所帮助
  • @MadProgrammer 除非有隐藏它的 JTextField 或 Caret 的方法——比如 textField.hideCaret();或类似的东西 - 我对你的解决方案很满意。但你是对的,让我们看看是否有人想出了更好的东西。
  • 在 @MadProgrammer 链接的示例中,它所做的只是在可见和 selectionVisible 上强制为 false。所以你总是可以尝试做 Caret caret = textField.getCaret(); caret.setSelectionVisible(false); caret.setVisible(false);

标签: java swing jtextfield


【解决方案1】:

你可以让它不可见, 你可以试试

textField.setCaretColor(Color.WHITE);

【讨论】:

  • 这行得通,但如果出于某种原因我决定更改文本字段颜色,我也必须更改这一行。因此,我认为我在上面的 cmets 中得到的“答案”效果更好。
  • 然后构造一个颜色(变量)并确保任何更改都将被继承到 JTextField 背景和插入符号。
猜你喜欢
  • 2010-10-09
  • 1970-01-01
  • 2010-09-22
  • 1970-01-01
  • 2021-08-26
  • 1970-01-01
  • 2012-09-07
  • 1970-01-01
  • 2012-12-21
相关资源
最近更新 更多