Hi,
ich hab folgendes Problem in einem groesserem Projekt, hab aber ein kleines Demoprogramm vorbereitet um das Problem zu veranschaulichen:
Ich habe eine JTextPane in der ich einen DocumentListener registriert habe. Ich will dabei die Strings herausfinden die in die JTextPane eingefuegt bzw. entfernt werden. Der eingefuegte String ist kein Problem, denn ich bekomme fuer den Bereich den Offset und die Laenge, und kann mir dann per Event.getDocument.getText(e.getOffset(), e.getLength()) den String herausholen. Bei removeUpdate() bekomme ich zwar auch Offset und Laenge, jedoch fang ich damit nichtsan, da der String den ich brauche, ja schon aus dem Document geloescht wurde.
kann mir hier vielleicht jemand weiterhelfen? ich danke auf jeden fall schon im Voraus
lg, Youlian
ich hab folgendes Problem in einem groesserem Projekt, hab aber ein kleines Demoprogramm vorbereitet um das Problem zu veranschaulichen:
Ich habe eine JTextPane in der ich einen DocumentListener registriert habe. Ich will dabei die Strings herausfinden die in die JTextPane eingefuegt bzw. entfernt werden. Der eingefuegte String ist kein Problem, denn ich bekomme fuer den Bereich den Offset und die Laenge, und kann mir dann per Event.getDocument.getText(e.getOffset(), e.getLength()) den String herausholen. Bei removeUpdate() bekomme ich zwar auch Offset und Laenge, jedoch fang ich damit nichtsan, da der String den ich brauche, ja schon aus dem Document geloescht wurde.
Code:
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultStyledDocument;
public class DemoDocument2 extends JFrame implements DocumentListener {
private JTextPane jTextPane1 = new javax.swing.JTextPane();
private JTextField jTextField1 = new javax.swing.JTextField();
private DefaultStyledDocument doc = new DefaultStyledDocument();
public DemoDocument2() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTextField1.setEditable(false);
this.add(jTextPane1, BorderLayout.CENTER);
this.add(jTextField1, BorderLayout.SOUTH);
this.setPreferredSize(new Dimension(400, 500));
this.doc.addDocumentListener(this);
this.jTextPane1.setDocument(doc);
this.pack();
}
public static void main(String[] args) {
new DemoDocument2().setVisible(true);
}
public void removeUpdate(DocumentEvent e) {
this.jTextField1.setText("remove: " + "WIE BEKOMMT MAN DEN?");
}
public void insertUpdate(DocumentEvent e) {
try {
this.jTextField1.setText("insert: " + e.getDocument().getText(e.getOffset(), e.getLength()));
} catch (BadLocationException ex) {
ex.printStackTrace();
}
}
public void changedUpdate(DocumentEvent e) {
}
}
kann mir hier vielleicht jemand weiterhelfen? ich danke auf jeden fall schon im Voraus
lg, Youlian