JTextFieldを作成し、PlainDocumentの拡張クラスを使用してsetDocumentプロパティを設定しました。
テキストボックスから消去するときに、残っている文字列を印刷したいのですが、1ステップ前に印刷されます。
まあ言ってみれば。JTextFieldに123456789のような文字列があり、バックスペースで1文字を消去すると、ok(12345678)と出力されます。しかし、削除すると「3」とすると「1234567」と表示されます。したがって、前の値を印刷します。次に別の文字を削除すると、3が消去されたことが示されます。。長さが変更されたことを認識し、後ろに1文字少ない文字を出力することだけです。
私が自分自身を明確にしなかった場合。plainDocumentコードから削除するときにテキストフィールドが持つ「実際の」文字列を出力したいと思います。
削除すると、テキストが印刷されるときにremoveまたはremoveupdateメソッドがトリガーされます。(おそらく1ステップ早く印刷します)
PS:外部のjtextfieldからではなく、plaindocumentから値を取得する必要があります。
これは私のコードです
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);
}