Я узнаю о DocumentListener в java с JTextPane. Я пытаюсь получить текущую строку или
слово (текст), которое вставлено/удалено недавно в текстовом поле. Я попытался это:Найти Удаленный текст в JTextPane
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.text.*;
class ChangeEffect implements DocumentListener {
@Override
public void insertUpdate(DocumentEvent de) {
int offset = de.getOffset();
try {
String str = de.getDocument().getText(offset,de.getLength());
System.out.println("You entered the text: " + str);
}catch(Exception e){e.printStackTrace();}
}
@Override
public void changedUpdate(DocumentEvent de) {
}
@Override
public void removeUpdate(DocumentEvent de) {
try {
String s = de.getDocument().getText(de.getOffset(),de.getLength());
System.out.println("Removed text is: " +s);
}catch(Exception e){}
}
}
public class MultiModeColor {
private static void displayGUI() {
JFrame frame = new JFrame("Demo");
JTextPane text = new JTextPane();
frame.add(text);
frame.pack();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setVisible(true);
text.getDocument().addDocumentListener(new ChangeEffect());
}
public static void main(String[] arg) {
Runnable r = new Runnable() {
@Override
public void run() {
displayGUI();
}
};
SwingUtilities.invokeLater(r);
}
}
В приведенном выше примере я получил недавно вставленный текст, но удаленный текст на дисплее ничего (кроме сообщения в Println заявления).
Есть ли способ получить недавно удаленный текст из документа?
Вы можете попробовать с помощью 'DocumentFilter' вместо этого .... – MadProgrammer