一行的JtextPane

时间:2011-05-19 11:29:51

标签: java swing fonts jtextpane

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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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); 
        }
    }

此代码效果很好

答案 2 :(得分:0)

将keyListener添加到jTextPane并在keyPressed(e)方法中跟踪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键则不会执行任何操作。