JTextPane Funktion: Inhalt ändert sich
lima-city → Forum → Programmiersprachen → Java
architektur
beispiel
code
funktion
inhalt
interface
methode
problem
programmieren
reagieren
stelle
suche
taste
text
textfeld
wissen
ziehen
-
Ich suche nach einer Funktion, die aufgerufen wird, wenn sich der Inhalt eines JTextPane ändert.
InputMethodTextChanged reagiert nicht auf Änderungen, KeyPressed, KeyReleased und KeyTyped reagieren zu früh, das bedeutet, dass die Funktion aufgerufen wird, sobald man eine Taste drückt, aber der Text noch nicht geändert wurde.
CaretUpdate wird meines Wissens nach nur durch Mausklick ins Textfeld aufgerufen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Die InputMethodListeners werden nur genau dann aufgerufen, wenn dein JTextPane auch das Interface InputMethodRequest implementiert. Bedenke, dass JTextPane dafür gedacht ist, wenn du eigene light-weight Eingabewidgets programmieren willst. Also davon ableitest, die ganze InputMethod-Architektur zu Fuß implementierst und dann instantiierst. Für eine direkte Instantiierung war diese Klasse nie gedacht.
Bei JTextArea hingegen kannst du ohne Probleme einen TextListener hinzufügen, der das tut was du vorhast.
Also 2 Möglichkeit:
Du benutzt JTextPane und implementierst InputMethodRequest.
oder
Du benutzt JTextArea. -
hi! also ich benutze den DocumentListener. Beispiel:
// ... textPane.getDocument().addDocumentListener(new DocumentListener() { public void changedUpdate(DocumentEvent e) { //... } public void insertUpdate(DocumentEvent e) { //... } public void removeUpdate(DocumentEvent e) { //... } }); // ...
Mit den Methoden getLength() und getOffset() des DocumentEvents kannst du dann rausfinden an welcher stelle das Document geändert wurde und dir demensprechend dann auch den Text aus dem Document ziehen.
Gruß
Lukas -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage