使用DocumentListener更新了JTextArea

时间:2014-10-15 23:59:05

标签: java swing events jtextarea documentlistener

JTextArea area1 = new JTextArea();
JTextArea area2 = new JTextArea();
DocumentListener documentListener = new DocumentListener() {
      public void changedUpdate(DocumentEvent documentEvent) {
        printIt(documentEvent);
      }
      public void insertUpdate(DocumentEvent documentEvent) {
        printIt(documentEvent);
      }
      public void removeUpdate(DocumentEvent documentEvent) {
        printIt(documentEvent);
      }
      private void printIt(DocumentEvent documentEvent) {
        DocumentEvent.EventType type = documentEvent.getType();
        String typeString = null;
        if (type.equals(DocumentEvent.EventType.CHANGE)) {
          typeString = "(CHANGED KEY) ";
        }  else if (type.equals(DocumentEvent.EventType.INSERT)) {
          typeString = "(PRESSED KEY) ";
        }  else if (type.equals(DocumentEvent.EventType.REMOVE)) {
          typeString = "(DELETED KEY) ";
        }
        System.out.print("Type : " + typeString);
        Document source = documentEvent.getDocument();
        int length = source.getLength();
        System.out.println("Current size: " + length);

      }
    };
area1.getDocument().addDocumentListener(documentListener);
area2.getDocument().addDocumentListener(documentListener);

这是我在区域1或区域2中按下事物时的处理代码。

我正在尝试这样做,以便在更新一个区域的文本时,它会使用相同的文本更新第二个区域的文本,反之亦然。我该怎么做呢?一个字段用于加密某些字段,另一个字段用于解密的值,反之亦然。

1 个答案:

答案 0 :(得分:2)

让他们共享同一个文档,就是这样。

area1.setDocument(area2.getDocument());