一行的 JtextPane

发布于 2024-11-08 06:53:54 字数 108 浏览 0 评论 0原文

我想用自定义字体实现 JTextField。我发现我们不能在 JTextField 中做到这一点。现在我正在使用 JtextPane 我有一个问题如何确保当用户按 Enter 时克拉不会转到下一行。 ?

I want to implement a JTextField with custom fonts.I came to know that we cannot do that in JTextField. Now I am using JtextPane i have a problem How to make sure the carat doesn't go to the next line when the user press enter. ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

断舍离 2024-11-15 06:53:54

添加 DocumentFilter 并防止在其中插入“\n”字符。

Add a DocumentFilter and prevent inserting "\n" chars there.

煮茶煮酒煮时光 2024-11-15 06:53:54
class DocFilter extends DocumentFilter{

        public void insertString(FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException {
            fb.insertString(offset, string.replaceAll("\\n", ""), attr); 
        }

       public void replace(FilterBypass fb, int offset, int length, String string, AttributeSet attr) throws BadLocationException {
            fb.insertString(offset, string.replaceAll("\\n", ""), attr); 
        }
    }

这段代码运行良好

class DocFilter extends DocumentFilter{

        public void insertString(FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException {
            fb.insertString(offset, string.replaceAll("\\n", ""), attr); 
        }

       public void replace(FilterBypass fb, int offset, int length, String string, AttributeSet attr) throws BadLocationException {
            fb.insertString(offset, string.replaceAll("\\n", ""), attr); 
        }
    }

This code works well

濫情▎り 2024-11-15 06:53:54

将 keyListener 添加到 jTextPane 并在 keyPressed(e) 方法中跟踪 Enter 键。 Enter 的键代码是 10。


尝试这样的键绑定:

JTextPane pane = new JTextPane();
// Get KeyStroke for enter key
KeyStroke enterKey = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0);
// Override enter for a pane
String actionKey = "none";
InputMap map = pane.getInputMap();
map.put(enterKey, actionKey);

这将覆盖 textPane 的 Enter 键行为,并且如果用户按 Enter 键则不会执行任何操作。

Add keyListener to jTextPane and track for enter key in keyPressed(e) method. Key code for enter is 10.


Try key bindings like this:

JTextPane pane = new JTextPane();
// Get KeyStroke for enter key
KeyStroke enterKey = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0);
// Override enter for a pane
String actionKey = "none";
InputMap map = pane.getInputMap();
map.put(enterKey, actionKey);

This will override the enter key behavior for textPane and does not do anything if user presses enter.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文