JTextField:当文本过长时,如何将文本设置在JTextField左侧

7

我有一个很长的字符串,想要在JTextField中显示。如果字符串太长,它会显示字符串的右侧部分而不是左侧部分,即使我使用了setHorizontalAlignment(JTextField.LEFT)

例如,如果我的字符串"JTextField example , this text is too long",应该显示为...

|----------------------|
| JTextField example ..|
|----------------------|

但实际上它显示为...
|----------------------|
| this text is too long|
|----------------------|

请问有人能提供如何解决这个问题的建议吗?

9
您可以使用 setCaretPosition(0) 将光标位置设置在 JTextField 左侧,但为了能够滚动,您需要将该 JTextField 添加到一个 JScrollPane 中。 - twain249
1
@twain249:为什么不把那个作为答案呢?太好了,会按预期工作 :-) - nIcE cOw
1
@twain249: 即使没有 JScrollPaneJTextField 也可以使用左右箭头键滚动; setScrollOffset() 也很有前途。 - trashgod
1个回答

12

当字段的大小大于字符串的字符数时,horizontalAlignement可以正常工作,但如果字段大小较小,则仅在创建setText时使用LEFT_ALIGNMENT,并没有在任何后续的setText中使用。

您可以使用以下方法将插入符号的位置强制设置为文本开头:

myTextField.setCaretPosition(0);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接