Создание переменных, объявленных в методе 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 будет меняться во время использования программы.

0 ответов

Другие вопросы по тегам