62,614
社区成员
发帖
与我相关
我的任务
分享
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
class MyDocument extends DefaultStyledDocument {
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
super.insertString(offs, str, a);
System.out.println("insert str = " + str);
}
}
class MyListener implements DocumentListener {
public void changedUpdate(DocumentEvent e) {
System.out.println("update");
}
public void insertUpdate(DocumentEvent e) {
System.out.println("insert");
}
public void removeUpdate(DocumentEvent e) {
System.out.println("remove");
}
}
public class Test extends JFrame {
private JTextPane pane;
private MyDocument doc;
private DocumentListener listener;
public Test() {
init();
setSize(100, 100);
getContentPane().add(pane);
}
public void init() {
pane = new JTextPane();
doc = new MyDocument();
listener = new MyListener();
doc.addDocumentListener(listener);
pane.setDocument(doc);
}
public static void main(String[] args) {
Test t = new Test();
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
t.setVisible(true);
StyledDocument doc = t.pane.getStyledDocument();
try {
StyleContext context = new StyleContext();
Style def = context.getStyle(StyleContext.DEFAULT_STYLE);
doc.insertString(doc.getLength(), "hello", def);
Thread.sleep(5000);
// 5秒后改变属性
System.out.println("care");
Style default_Style = context.addStyle("default", def);
StyleConstants.setFontFamily(default_Style, "Courier New");
StyleConstants.setBold(default_Style, true);
StyleConstants.setFontSize(default_Style, 18);
doc.setCharacterAttributes(0, doc.getLength(), default_Style, true);
}
catch(Exception e) {
}
}
}