Подсчет количества кликов - Java
Формулировка задачи:
Хочу подсчитать количество кликов, это тестовый кусочек программы для другой проги. В чем собственно проблема. Имеется два класса: первый - где основная движуха Main, второй - класс для обработки события, в частности клика мышки. Если писать класс один за другим, то все работает в порядке, но в главном классе тогда нет доступа к переменной sum, в которой сохранено количество кликов. Если же поместить класс-обработчик внутрь главного класса, то переменная станет доступной, но почему-то в строке "MyMouse listener = new MyMouse();" выдается ошибка, подчеркнуто все что после знака равно. Пишет: "'Main.this' cannot be referenced from a static context". Объясните пожалуйста, что это значит и как решить эту проблему. Заранее благодарен.
Листинг программы
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.*;
- public class Main extends JFrame{
- public static void main(String[] args) {
- JFrame frame = new JFrame();
- frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
- frame.setVisible(true);
- frame.setBounds(300, 200, 600, 400);
- frame.setTitle("WoW!");
- JButton button = new JButton("Чпокни");
- frame.add(button);
- MyMouse listener = new MyMouse();
- button.addMouseListener(listener);
- }
- class MyMouse extends MouseAdapter {
- int sum = 0;
- public void mouseClicked(MouseEvent e) {
- System.out.println("Клик " + ++sum);
- }
- }
- }
Решение задачи: «Подсчет количества кликов»
textual
Листинг программы
- 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);
- }
- }
- };
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д