我创建了一个 JTextField 并使用来自 PlainDocument 的扩展类设置 setDocument 属性。
当我从文本框中擦除时,我想打印剩余的字符串,但它只打印了一步。
比方说。如果 JTextField 有一个像 123456789 这样的字符串,并且我用退格键擦除一个字符,那么它会打印 ok (12345678)。但如果我删除让我们说“3”,那么它会显示“1234567”。所以我打印了一个以前的值。如果我然后删除另一个字符,那么它将显示 3 已被删除。. 只是它知道长度发生了变化并在后面少打印了一个字符。
如果我没有说清楚。我想打印从 plainDocument 代码中删除时文本字段具有的“真实”字符串。
当我删除它时,它会触发删除或 removeupdate 方法,当我的文本被打印时。(可能我提前一步打印)
PS:我必须从纯文档中获取值,而不是从外部的 jtextfield 中获取值。
这是我的代码
protected void removeUpdate(AbstractDocument.DefaultDocumentEvent evento)
{
try {
super.removeUpdate(evento);
removePostUpdate(evento);
} catch (BadLocationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
protected void removePostUpdate(AbstractDocument.DefaultDocumentEvent evento) throws BadLocationException
{
try {
palabraCompleta = evento.getDocument().getDefaultRootElement().getDocument().getText(0,evento.getDocument().getDefaultRootElement().getDocument().getLength()-1 );
System.out.println(evento.getPresentationName());
} catch (BadLocationException e) {
e.printStackTrace();
}
System.out.println(palabraCompleta);
}