Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java和ctrl+中的DocumentFilter;v不起作用_Java_Copy Paste_Documentfilter - Fatal编程技术网

java和ctrl+中的DocumentFilter;v不起作用

java和ctrl+中的DocumentFilter;v不起作用,java,copy-paste,documentfilter,Java,Copy Paste,Documentfilter,当我尝试使用此文档过滤器时,ctrl+v和ctrl+c不起作用 public class stringLengthTrim extends DocumentFilter { private int limit; public stringLengthTrim(int limit) { this.limit = limit; } @Override public void insertString(FilterBypass fb, int offset, String string,

当我尝试使用此文档过滤器时,ctrl+v和ctrl+c不起作用

public class stringLengthTrim extends DocumentFilter {

private int limit;

public stringLengthTrim(int limit) {
    this.limit = limit;
}

@Override
public void insertString(FilterBypass fb, int offset, String string, AttributeSet attr) throws BadLocationException {
    Document innerDoc = fb.getDocument();
    StringBuilder sb = new StringBuilder(innerDoc.getText(0, innerDoc.getLength()));
    sb.insert(offset, string);
    if (textOK(sb.toString())) {
        super.insertString(fb, offset, string, attr);
    }
}

@Override
public void replace(FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException {
    Document innerDoc = fb.getDocument();
    StringBuilder sb = new StringBuilder(innerDoc.getText(0, innerDoc.getLength()));
    int start = offset;
    int end = offset + length;
    sb.replace(start, end, text);
    if (textOK(sb.toString())) {
        super.replace(fb, offset, length, text, attrs);
    }
}

@Override
public void remove(FilterBypass fb, int offset, int length)
        throws BadLocationException {
    super.remove(fb, offset, length);
}

private boolean textOK(String text) {
    if (text.length() <= limit) {
        return true;
    }
    return false;
}
}

contentID
是一个JTextarea。

它对我很有用。你能比“不起作用”更具体一点吗?你看到了什么行为?如果您编辑您的问题并包含在您的JTextField或JTextArea上安装此DocumentFilter的代码,则会有所帮助。当我尝试使用ctrl+v通过JTextArea或JTextField中的文本时,cpoied文本不会通过<代码>明文cID=(明文)contentID.getDocument();cID.setDocumentFilter(新stringLengthTrim(9))粘贴的字符是否少于十个?非常感谢@VGR。问题解决了。我复制的文本超过最大值。我工作很努力,我很累;-)
PlainDocument cID = (PlainDocument) contentID.getDocument();
cID.setDocumentFilter(new stringLengthTrim(9));