我想用自定义字体实现一个JTextField。我知道我们不能在JTextField中这样做。现在我正在使用JtextPane我有一个问题如何确保当用户按回车键时,克拉不会转到下一行。 ?
答案 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键则不会执行任何操作。