2016-06-27 4 views
0

я в настоящее время пытаюсь реализовать ActionListener, который принимает текст с input, текстовым полем и установите его в строку direction, например, так:Реализация ActionListener к JTextField

//Creates textField 
JTextField input=new JTextField(20); 
input.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent event) { 
    direction=input.getText(); 
    } 
}); 

Однако этот код бросает ошибка:

The method addActionListener(java.awt.event.ActionListener) in the type javax.swing.JTextField is not applicable for the arguments (new ActionListener(){})

Как правильно создать actionlistener для того, что я пытаюсь сделать?

+2

Вы уверены, что ваши операторы импорта верны? Я думаю, что вы должны работать. – nhouser9

+1

У вас вопрос отсутствует уместный код, код, который сделает его ответственным, не догадываясь. Вот почему вы всегда должны создавать и публиковать действительные [mcve] для таких вопросов, и ваш MCVE должен включать в себя инструкции импорта. –

+0

И да, переименуйте тот класс, который вы создали где-то, который называется 'ActionListener'. Избегайте давать имена классов, которые сталкиваются с общими ядрами Java. –

ответ

2

Из того, что вы предоставили, похоже, что вы импортировали или внедрили класс, отличный от java.awt.event.ActionListener named, ActionListener (конфликт имен классов). Попробуйте указать параметр как java.awt.event.ActionListener:

//Creates textField 
JTextField input=new JTextField(20); 
input.addActionListener(new java.awt.event.ActionListener() { 
    public void actionPerformed(ActionEvent event) { 
    direction=input.getText(); 
    } 
}); 
+0

* «Попробуйте квалифицировать параметр» * Было бы разумнее переименовать пользовательский «ActionListener». –

+0

Это зависит от ситуации. В GUI-программировании обычно используется как java.util.List, так и java.awt.List. Вы должны определить свою ссылку, по крайней мере, на одну из них, чтобы избежать конфликтов имен классов. – Dylon

+0

Да, но они оба являются основными классами J2SE, и каждое из них имеет смысл. В J2SE нет ни одного «ActionListener», ни какой-либо хорошей причины для создания пользовательского «ActionListener». «Обычная» проблема здесь не применима. –

Смежные вопросы