Создание переменных, объявленных в методе main, доступными для анонимных классов
Я делаю простую программу, где пользователь нажимает кнопку, а метка отображает количество нажатий. Это то, что я до сих пор:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class mainGUI {
public static void main(String[] args) {
int numOfClicks = 0;
JFrame mainWindow = new JFrame("ClickerCounter");
JPanel mainPanel = new JPanel();
JButton clickerBtn = new JButton("Click Here");
JButton clickerReset = new JButton("Reset");
JLabel mainLabel = new JLabel("You have clicked 0 times.");
mainWindow.setPreferredSize(new Dimension(400,75));
mainWindow.pack();
mainWindow.setLocationRelativeTo(null);
mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainPanel.add(clickerBtn);
mainPanel.add(clickerReset);
mainPanel.add(mainLabel);
mainWindow.add(mainPanel);
mainWindow.setVisible(true);
clickerBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
numOfClicks += 1;
}
});
}
}
Я объявил numOfClicks
переменная внутри основного метода, но я получаю "Локальная переменная numOfClicks
определенный в прилагаемой области видимости должен быть окончательным или фактически окончательным ". Как я могу сделать переменную numOfClicks доступной для анонимного класса ActionListener?
Я не могу сделать эту переменную окончательной, так как numOfClicks будет меняться во время использования программы.