Мидлет не является абстрактным и не переопределяет абстрактный метод focusLost(com.sun.lwuit.Component)
У меня есть класс LWUIT, который имеет List
, сам список содержит метку как элемент.
Моя идея просто сделать действие для списка, когда я сосредоточусь на лейбле.
Я получаю следующую ошибку при компиляции класса:
анонимный мидлет $2 не является абстрактным и не переопределяет абстрактный метод focusLost(com.sun.lwuit.Component) в com.sun.lwuit.events.FocusListener
String s = ("Focus me");
final com.sun.lwuit.Form f = new com.sun.lwuit.Form();
final com.sun.lwuit.List D = new com.sun.lwuit.List();
final com.sun.lwuit.Label l = new com.sun.lwuit.Label(s);
D.addItem(l);
f.addComponent(D);
D.addFocusListener(new com.sun.lwuit.events.FocusListener () {
public void focusGained(com.sun.lwuit.Label l)
{
}
public void focusLost(com.sun.lwuit.Label l)
{
}
});
1 ответ
Все подробности о том, что не так с вашим кодом, содержатся в сообщении об ошибке, вам просто нужно внимательно прочитать его. Посмотрите,
слово
anonymous
и подписать$
вMidlet$2
сказать что-то не так в анонимном классе.
В вашем фрагменте кода есть только один такой класс:new com.sun.lwuit.events.FocusListener
does not override abstract method focusLost(com.sun.lwuit.Component)
означает, что ваш анонимный класс пропускает определение метода с такой сигнатурой (сигнатура - это имя метода и тип параметров)Посмотрите внимательнее на методы, которые вы определили в этом анонимном классе, есть ли какой-то метод, на который жалуется компилятор?
На первый взгляд, вы можете подумать, что там есть метод
focusLost
- но (!) вы должны помнить, что подпись - это не только имя метода, но и тип параметров - и (!) если вы посмотрите поближе, вы обнаружите, что тип параметра не тот, который, как говорят, требуется в сообщении об ошибке,
Ваш анонимный класс имеет метод focusLost(com.sun.lwuit.Label)
но сообщение об ошибке говорит, что должен быть метод с другой подписью (другой тип параметра) - focusLost(com.sun.lwuit.Component)
,
Чтобы исправить эту ошибку компиляции, добавьте в анонимный класс new com.sun.lwuit.events.FocusListener
метод с необходимой подписью: focusLost(com.sun.lwuit.Component)
,