я получаю ошибку в timer.stop(), он говорит, что «локальная переменная таймера доступны внутри класса, должен быть объявлен окончательный»Локальная переменная Accessed изнутри - Java
public static void main(String args[]) {
int tick;
Timer timer;
timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int tick=0;
System.out.println("Success" + ++tick);
if (tick > 4) {
timer.stop();
}
}
});
timer.setInitialDelay(0);
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}
Я попытался это:
public static void main(String args[]) {
int tick;
Timer timer;
final Timer timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int tick=0;
System.out.println("Success" + ++tick);
if (tick > 4) {
timer.stop(); //this refers to the final variable timer, this is valid.
}
}
});
timer.setInitialDelay(0);
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}
и теперь ошибка приходит на "конечный таймере Timer = новый таймер (1000, новый ActionListener() {", что таймер уже определен основной (java.lang.String []) и если i удаляет таймер таймера, он показывает ошибку на «timer.stop()», что переменный таймер, возможно, не был инициализирован
... и в чем вопрос? – Claudiu
@csoroiu Что ???? –
текст был неполным, когда я прочитал его первым. Он был отредактирован несколько минут назад. – Claudiu