2015-08-05 3 views
0

Я добавляю некоторые пользовательские слушатели к моему классу, но события документа не срабатывают. Зачем?DocumentListener, не вызывающий метод insertUpdate

public class MyClass{ 
     MyCustomListener mcl = new MyCustomListener();   
     for(int i = 0; i < MAX; i++) { 
        getTxt_ppu().add(new CustomTextField(40)); 
        getTxt_ppu().get(i).getDocument().addDocumentListener(mcl); 
        getTxt_ppu().get(i).addFocusListener(mcl); 
     } 
     //...Some code.... 
     private class MyCustomListener implements DocumentListener, FocusListener, Serializable { 
      int index; 

      @Override 
      public void focusGained(FocusEvent e) { 

       System.out.println("Focus"); 
      } 

      @Override 
      public void focusLost(FocusEvent e) { 
      } 

      @Override 
      public void insertUpdate(DocumentEvent e) { 
       System.out.println("a"); 

      } 

      @Override 
      public void removeUpdate(DocumentEvent e) {  
      } 

      @Override 
      public void changedUpdate(DocumentEvent e) {  
      } 
     } 

}

При выполнении и нажав на моих CustomTextField это делает шоу в консоли «Фокус», но когда я типа что-то внутри текстового поля «а» никогда не печатается. Когда я набрав что-то внутри методы insertUpdate, затмение показывает красную Сообща в нижней части, который говорит

«Метод insertUpdate (DocumentEvent) типа MyClass.MyCustomListener должен переопределить или реализовать метод супертипа»

Как это исправить?

ответ

0

Ваш код выглядит хорошо, я имею в виду, по крайней мере, я не ошибся с добавлением части слушателя. Взгляните на демо сравнить то, что вы сделали, вы можете найти вопрос:

https://docs.oracle.com/javase/tutorial/displayCode.html?code=https://docs.oracle.com/javase/tutorial/uiswing/examples/events/DocumentEventDemoProject/src/events/DocumentEventDemo.java

0

Это не имеет никакого смысла.

я снова должен был addDocumentListener, от метода focusGained ..

@Override 
    public void focusGained(FocusEvent e) { 

     Object o = e.getSource(); 
     if(o instanceof CustomTextField) { 
      ((CustomTextField)o).getDocument().addDocumentListener(mcl); 
     } 
    }