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

Узнай цену своей работы

Формулировка задачи:

Хочу подсчитать количество кликов, это тестовый кусочек программы для другой проги. В чем собственно проблема. Имеется два класса: первый - где основная движуха Main, второй - класс для обработки события, в частности клика мышки. Если писать класс один за другим, то все работает в порядке, но в главном классе тогда нет доступа к переменной sum, в которой сохранено количество кликов. Если же поместить класс-обработчик внутрь главного класса, то переменная станет доступной, но почему-то в строке "MyMouse listener = new MyMouse();" выдается ошибка, подчеркнуто все что после знака равно. Пишет: "'Main.this' cannot be referenced from a static context". Объясните пожалуйста, что это значит и как решить эту проблему. Заранее благодарен.
Листинг программы
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. public class Main extends JFrame{
  5. public static void main(String[] args) {
  6. JFrame frame = new JFrame();
  7. frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
  8. frame.setVisible(true);
  9. frame.setBounds(300, 200, 600, 400);
  10. frame.setTitle("WoW!");
  11. JButton button = new JButton("Чпокни");
  12. frame.add(button);
  13. MyMouse listener = new MyMouse();
  14. button.addMouseListener(listener);
  15. }
  16. class MyMouse extends MouseAdapter {
  17. int sum = 0;
  18. public void mouseClicked(MouseEvent e) {
  19. System.out.println("Клик " + ++sum);
  20. }
  21. }
  22. }

Решение задачи: «Подсчет количества кликов»

textual
Листинг программы
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.JFrame;
  4. import javax.swing.JLabel;
  5. import javax.swing.JButton;
  6.  
  7.  
  8. public class TestFrame {
  9.  
  10.     public static void createGUI() {
  11.  
  12.         JFrame.setDefaultLookAndFeelDecorated(true);
  13.         JFrame frame = new JFrame("Кликер");
  14.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  15.  
  16.         JButton button = new JButton("Нажми");
  17.         frame.add(button);
  18.         MyMouse listener = new MyMouse();
  19.         button.addMouseListener((MouseListener) listener);
  20.  
  21.  
  22.         frame.setPreferredSize(new Dimension(200, 100));
  23.  
  24.         frame.pack();
  25.         frame.setVisible(true);}
  26.  
  27.  
  28.     public static void main(String[] args) {
  29.         javax.swing.SwingUtilities.invokeLater(new Runnable() {
  30.             public void run() {
  31.                 createGUI();
  32.             }
  33.         });
  34.     }
  35.  
  36.     static class MyMouse extends MouseAdapter {
  37.         int sum = 0;
  38.         public void mouseClicked(MouseEvent e){
  39.             System.out.println("Кликов" + ++sum);
  40.  
  41.         }
  42.     }
  43. };

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы