Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > переопределение методов


Автор: Anime 11.3.2008, 17:35
Код

    class myPanel extends JPanel {
        int x,y;
        public void setCor(int x, int y) {
            this.x = x;
            this.y = y;
        }
        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            g.drawString(x + " / " + y, 20, 20);
            repaint();
        }
        
        //Несрабатывают эти два оверайда. Почему?
        @Override
        public synchronized void addMouseMotionListener(MouseMotionListener l) {
            super.addMouseMotionListener(l);
            //l.mouseMoved(?); // непойму что вставить сюда
        }

        //В чем разница между верхнем методом и этим
        @Override
        protected void processMouseMotionEvent(MouseEvent e) {
            super.processMouseMotionEvent(e);
            System.out.println(e.getX()); // несрабатывает
        }

    }

вот создал отдельный класс хочется чтоб при новедения на него показывался координаты мыши. Как бы этот класс сам себя обрабатывал

В принципе указаны вопросы в коментах кода

Автор: Kangaroo 11.3.2008, 17:59
Первый оверайд не нужен.
Просто добавь в конструкторе:
Код

addMouseMotionListener(this);

Автор: Anime 12.3.2008, 12:39
Делаю так:
Код

    class myPanel extends JPanel {
        int x,y;

        myPanel() {
            addMouseMotionListener(this);
        }

        public void setCor(int x, int y) {
            this.x = x;
            this.y = y;
        }
        @Override
        protected void paintComponent(Graphics g) {
            super.paintComponent(g);
            g.drawString(x + " / " + y, 20, 20);
            repaint();
        }
        /*
        //Несрабатывают эти два оверайда. Почему?
        @Override
        public synchronized void addMouseMotionListener(MouseMotionListener l) {
            super.addMouseMotionListener(l);
            //l.mouseMoved(?); // непойму что вставить сюда
        }
        */
        //В чем разница между верхнем методом и этим
        @Override
        protected void processMouseMotionEvent(MouseEvent e) {
            super.processMouseMotionEvent(e);
            System.out.println(e.getX()); // несрабатывает
        }

    }

но мне ide netbeans говорит что надо создать метод addMouseMotionListener(test.myPanel) в test.myPanel
так должно быть?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)