Проблемы с MouseListener

Пишу игру на java. Проблема здесь в том, что я написал свою игру для запуска в JFrame, не думая, что захочу добавить меню, экран результатов и все такое хорошее. Сама игра отлично работает в JFrame. Однако я решил превратить свой JFrame в JPanel, создать отдельный класс для моего JFrame, а затем просто добавить свой JPanel в фрейм. Все работает просто великолепно, за исключением того, что мой MouseListener больше не делает ни черта. Может кто-нибудь сказать мне, как сделать эту работу или другое представление о том, как это можно сделать?

/////ОБНОВЛЕНИЕ Итак, видимо, я нашел ответ, воссоздавая проблему.... Мне просто нужно выяснить разницу между моим игровым кодом и тестовым кодом.

Вот пример, который я написал, чтобы попытаться воспроизвести проблему. Как ни странно, это работает. Теперь я еще больше запутался. Итак, видимо, это нормально:

//Class for the JFrame
package mousetest;

import java.awt.Color;
import javax.swing.JFrame;

public class MouseTest extends JFrame{

public static void main(String[] args) {
    MouseTest test = new MouseTest();
}

public MouseTest(){
    //create teh board
    Board game = new Board();

    //framestuff
    setSize(406, 630);
    setLocationRelativeTo(null);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setResizable(false);
    setVisible(true);
    setBackground(Color.black);
    add(game); // add it
}

}

========================================================================

//Class for the JPanel that my game is in
package mousetest;

import java.awt.Color;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Board extends JPanel{
    JLabel testlabel = new JLabel("testtext");
    //CONSTRUCTOR
    public Board(){
        setBackground(Color.WHITE);
        testlabel.addMouseListener(new Mousehandle());
        setVisible(true);
        add(testlabel);
    }


    // control ALLTHECLICKS!!!!!
    class Mousehandle implements MouseListener{

        public Mousehandle(){

        }

        public void mouseClicked(MouseEvent e) {

        }

        public void mousePressed(MouseEvent e) {
            if(e.getSource() == testlabel){
                System.out.println("mouse down");
            }
        }

        public void mouseReleased(MouseEvent e) {
            if(e.getSource() == testlabel){
                System.out.println("mouse up");
            }
        }

        public void mouseEntered(MouseEvent e) {
            if(e.getSource() == testlabel){
                System.out.println("rollover");
            }

        }

        public void mouseExited(MouseEvent e) {
           if(e.getSource() == testlabel){
                System.out.println("roll off");
            }
        }

        public void mouseDragged(MouseEvent e){

        }

    }


}

person v3xx3d    schedule 13.04.2012    source источник
comment
Покажите нам код. Сделайте пример кода: JFrame, Panel, MouseListener и отладочное сообщение. Должно уместиться в 20 строк в т.ч. импортирует и воспроизводит проблему.   -  person user unknown    schedule 13.04.2012
comment
Черт возьми, я отвечал не на тот вопрос - извините!!!   -  person Hovercraft Full Of Eels    schedule 13.04.2012
comment
ржу не могу. все хорошо. Я узнал, что не должен использовать keyListener. :П   -  person v3xx3d    schedule 13.04.2012
comment
Хорошо, вы можете ответить и принять этот ответ самостоятельно?   -  person Zecas    schedule 29.05.2012