2012-01-04 4 views
5

в C# есть событие для текстовых полех следующим образомJava эквивалент C# TextBox TextChanged события

private void fooText_TextChanged(object sender, EventArgs e) 
{ 
    //do something 
} 

код в fooText_TextChanged запускаемый после того, как текст в текстовом поле изменяется.

Что представляет собой эквивалент java? Или как можно добиться чего-то подобного в java?

Благодарим за любую отзыв/помощь/совет.

ответ

10

Для Swing, Если вы хотите получать извещение после текст текстового компонента был изменен, вы должны использовать DocumentListener, который был добавлен в документ JTextComponent. например,

JTextField myField = new JTextField(); 

    myField.getDocument().addDocumentListener(new DocumentListener() { 

    public void removeUpdate(DocumentEvent e) { 
     // TODO add code! 

    } 

    public void insertUpdate(DocumentEvent e) { 
     // TODO add code! 

    } 

    public void changedUpdate(DocumentEvent e) { 
     // TODO add code! 

    } 
    }); 

Если с другой стороны, вы хотите, чтобы проверить текст перед тем оно было совершенно в текстовом компонент, вы бы добавить DocumentFilter к Документу JTextComponent в.

+0

Спасибо за скорый ответ, я проверю это :) – Ari

+0

большое спасибо, отлично работает :) – Ari

+0

Вы очень желанны! –

4

Я рекомендую зарегистрировать DocumentListener вашему компоненту документа. В этом случае вы будете слушать DocumentEvent s.

+0

спасибо большое :) – Ari

+1

На самом деле вы добавляете DocumentListener в Документ, а не в компонент. – camickr

+0

@camickr, Упс .. спасибо! – mre