JTextArea text = new JTextArea("");
        text.getDocument().addDocumentListener(new DocumentListener() {
            public void changedUpdate(DocumentEvent e) {
                ok = true;
            }
            public void insertUpdate(DocumentEvent e) {
            }
            public void removeUpdate(DocumentEvent e) {
            }
        });  请问 想得到 JTextArea是否更改 怎么使用的?
 为什么我这样写 在输入框输入字母后 那个ok好像不会变成 true ?

解决方案 »

  1.   

    多看看api
    changedUpdate
    给出属性或属性集发生了更改的通知
    不是更改了文档会调用这个方法你可以在insertUpdate和removeUpdate都加入ok = true
      

  2.   

    AWT 的用的不多,但是API里绝对讲得有,不懂的就去看看API吧 !
      

  3.   

    如果是添加用insertUpdate
    如果是修改用changedUpdate
    如果是删除用removeUpdate
        看看用insertUpdate是否是你要的效果
      

  4.   

    有时候感觉API上写的 对于我这种新手来说 太过专业化 
    看半天都不懂 但往往前辈们一个简单的回复  就几个字 就能让我明白过来 呵呵
      

  5.   

    样式化文档不光有文本内容 还有字体,颜色等属性
    下面是一个示例程序,运行后等待5秒改变属性 触发changedUpdateimport 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) {
            }
        }
    }