Проблемы с Eclipse Listener и получением источника - PullRequest
0 голосов
/ 01 июня 2011

В моем проекте Eclipse у меня есть

Text custom_text = new Text(....);

Теперь я добавляю слушателя -

custom_text.addKeyListener (new KeyListener () {

@Override public void keyPressed (KeyEvent event) {

}

@ Переопределить public void keyReleased (KeyEvent event) {System.err.println ("event" + event.getSource ()));

}});

Во всяком случае, я не получаю имя источника, несмотря на то, что я получаю вывод как Text {}.Ну, я хочу получить имя источника, то есть custom_text.

Как получить вывод в слушателе как custom_text

Ответы [ 2 ]

0 голосов
/ 02 июня 2011

Вы можете использовать event.widget для определения события уведомления виджета.

Но общий подход - ретрансляция с анонимным слушателем.потому что он может использовать более читаемое имя метода, которое больше подходит субъекту контроллера.

Text nameField, emailField = ...

nameField.addListener(SWT.KeyUp, new Listener(){
    public void handleEvent(Event e){
        handleNameEdited();   
    } 
});

emailField.addListener(SWT.KeyUp, new Listener(){
   public void handleEvent(Event e){
       handleEmailEdited();
   }
});
0 голосов
/ 01 июня 2011

ИМХО нельзя указывать имя переменной, удерживая ссылку на ваше текстовое поле.Также не имеет смысла знать имя переменной, поскольку у вас может быть много ссылающихся переменных.

С .getSource () вы получаете полную ссылку на сам виджеттак что вы можете справиться с этим любым способом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...