Подсчет количества кликов - Java

  1. Хочу подсчитать количество кликов, это тестовый кусочек программы для другой проги. В чем собственно проблема. Имеется два класса: первый - где основная движуха Main, второй - класс для обработки события, в частности клика мышки. Если писать класс один за другим, то все работает в порядке, но в главном классе тогда нет доступа к переменной sum, в которой сохранено количество кликов. Если же поместить класс-обработчик внутрь главного класса, то переменная станет доступной, но почему-то в строке "MyMouse listener = new MyMouse();" выдается ошибка, подчеркнуто все что после знака равно. Пишет: "'Main.this' cannot be referenced from a static context". Объясните пожалуйста, что это значит и как решить эту проблему. Заранее благодарен.


textual

Код к задаче: «Подсчет количества кликов - Java»

import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;
 
 
public class TestFrame {
 
    public static void createGUI() {
 
        JFrame.setDefaultLookAndFeelDecorated(true);
        JFrame frame = new JFrame("Кликер");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
        JButton button = new JButton("Нажми");
        frame.add(button);
        MyMouse listener = new MyMouse();
        button.addMouseListener((MouseListener) listener);
 
 
        frame.setPreferredSize(new Dimension(200, 100));
 
        frame.pack();
        frame.setVisible(true);}
 
 
    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createGUI();
            }
        });
    }
 
    static class MyMouse extends MouseAdapter {
        int sum = 0;
        public void mouseClicked(MouseEvent e){
            System.out.println("Кликов" + ++sum);
 
        }
    }
};

СДЕЛАЙТЕ РЕПОСТ

13   голосов, оценка 4.000 из 5



Похожие ответы
  1. Как сделать, чтобы количество кликов отбражалось е в консоли, а в самом окне? Что добавить в код? Ответьте пожалуйста. Зарание спасибо.

  1. Доброго времени суток. У меня есть класс, который не дает вводить ничего кроме цифр и точки в текстовое поле JTextField. Можно ли добавить к этому классу какой-то код, чтобы до точки максимум можно было вводить 2 цифры, а после точки максимум - 3 цифры. То есть например, 2.456, 56.1, 99,999, но например, 234.1, 2.3456 - не можно было вводить.