JTextField 中的 Ctrl-Delete
如何让 JTextFields 在编辑文本时允许 Ctrl-Delete 和 Ctrl-Backspace ?
在各种其他程序中,这些组合键可以一次性删除整个单词。
据我所知,JTextField 的默认行为允许用户在使用左右键时使用 CTRL 跳过整个单词,并在使用 SHIFT< 时选择整个单词。 /kbd> 也被使用。然而,仅仅删除是行不通的。
How can I get JTextFields to allow Ctrl-Delete and Ctrl-Backspace when editing text?
In various other programs, these key combinations can delete an entire word in one go.
From what I can tell, the default behaviour of a JTextField allows the user to use CTRL to jump over an entire word when using left and right keys, and to select an entire word when SHIFT is used too. However, deleting just doesn't work.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Swing 使用键绑定将操作映射到组件。要查找给定组件的默认映射,您可以使用 按键绑定 程序。本文还包含 Swing 教程的链接,其中包含有关“如何使用键绑定”的部分。
要创建自定义操作,您需要扩展 TextAction,以便可以访问文本组件。然后您需要获取当前插入符位置。然后您可以使用 Utilities 类来获取当前单词的开头或结尾,然后您可以从文档中删除这些字符。
Swing uses Key Bindings to map Actions to components. To find out the default mappings for a given component you can use the Key Bindings program. The article also contains a link to the Swing tutorial which contains a section on "How to Use Key Bindings".
To create your custom Action you would extend TextAction so you have access to the text component. You would then need to get the current caret position. Then you can use the Utilities class to get the start or end of the current word and then you can remove the characters from the Document.
您需要定义一个操作并将其放入组合的操作映射中。有关介绍,请参阅本文。
You need to define an Action and put it into the action map of the composite. See this article for an introduction.