ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
634
634
EMPFEHLEN
-
Hallo,
folgende Frage hätte ich mal - vielleicht weiss ja jemand was:
ich habe ein Objekt vom Typ StyledDocument und muss auf Änderungen hieran reagieren. Dazu dient mir eine Implementierung von DocumentListener. Mit der Methode changedUpdate(DocumentEvent e) des Listeners sollte es eigentlich möglich sein, u.a. Formatänderungen, die zum Beispiel mit setCharacterAttributes(args) vorgenommen werden, auszulesen. Die Frage ist nur - WIE?
Die String-Ausgabe des EventObjekts (s.u.) zeigt mir, dass die AttributÄnderung Bestandteil des Events ist, nur gibt es keine Methode, daran zu kommen
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
public class MyStyledDocumentListener implements DocumentListener { public void insertUpdate(DocumentEvent e) { ; // do sth } public void removeUpdate(DocumentEvent e) { ; // do sth } public void changedUpdate(DocumentEvent e) { System.out.println((DefaultDocumentEvent)e); } }
Ausgabe von changedUpdate ist dann: [javax.swing.text.DefaultStyledDocument$AttributeUndoableEdit@1c486f2 hasBeenDone: true alive: true]
Hat da jemand eine Idee****
Besten Dank für jeden Tipp
lazydog
-
Wenn alles in deinem event steht kommst du über e an alles aus dem event ran.
Schon mal mit e.getSource probiert?
du holst dir mit getSorce das objekt welches da event geschmissen hat. wenn du es in einem Objekt mit festen typ hast kannst du von dort alles abfragen was du brauchst
-
Hallo wakoz,
bei DocumentEvent übernimmt das e.getDocument(). Die Quelle allein nützt mir aber nichts, da ich ja wissen möchte, welche Änderung an dieser durchgeführt wurde - und dafür hat DocumentEvent offensichtlich nichts im Angebot s.u.Schon mal mit e.getSource probiert?
http://download.oracle.com/javase/1....mentEvent.html
vielen Dank trotzdem für die Antwort
ld
-
guter link versuch es mal mit e.getchange() laut doku soll es genau das returnen was du haben willst
DocumentEvent.html
versuche es erst mal mit dieser Methode weil sie fürs isert und remove den Text liefern kann
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
public class MyStyledDocumentListener implements DocumentListener { public void insertUpdate(DocumentEvent e) { ; // do sth } public void removeUpdate(DocumentEvent e) { ; // do sth } public void changedUpdate(DocumentEvent e) { System.out.println((DefaultDocumentEvent)e); Element ele = e.getChange(e.getDocument()); System.out.println(ele.getString()); // Hier musst du sehen wie du an die String information // aus dem element kommst die genaue Metode kenne ich nicht sollte aber // ähnlich beim JTree Element sein } }
alternativ geht
wobei dies nur für insert funktioniertCode java:1
e.getDocument.getText(e.getOffset(), e.getLength())
PS: gib Bescheid wenn es klappt
Geändert von wakoz (05.02.11 um 23:10 Uhr) Grund: PS
-
Leider funktioniert das so nicht.
die Methode erwartet kein Objekt vom Typ Document sondern javax.swing.text.Element. Ich hatte damit auch schon herumlaboriert, z.B. indem ich das betroffene Character- oder ParagraphElement übergebe. War leider auch erfolglos!e.getChange(e.getDocument())
der geänderte Text alleine hilft mir auch nicht weiter. changedUpdate() sollte mir eigentlich u.a. Formatänderungen mitteilen und hinter denen bin ich eigentlich her!e.getDocument.getText(e.getOffset(), e.getLength())
vielen Dank
ld
Ähnliche Themen
-
SimpleXML: Suche nach Attribute und ändere Attribute
Von Charriu im Forum PHPAntworten: 3Letzter Beitrag: 03.08.10, 17:08 -
DocumentListener
Von MariusMeier im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 3Letzter Beitrag: 07.05.08, 14:27 -
CSplitterWnd und veränderte Fenstergröße
Von NinjaOne im Forum VisualStudio & MFCAntworten: 3Letzter Beitrag: 16.09.05, 18:34 -
Zuletzt veränderte Zeile auslesen ?
Von pnx im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 16.11.04, 19:52 -
ein Klick zwei veränderte Seiteninhalte
Von Bodylotion im Forum PHPAntworten: 2Letzter Beitrag: 04.11.04, 20:47





Zitieren
Login





