Java游戏状态不变

Java游戏状态不变,java,Java,当我设置事件鼠标单击时应该返回主菜单,但当我单击鼠标时,它什么也不做。我想让它转到主菜单的MENUSTATE,但什么也没发生。我需要帮助,因为这是一个学校项目,我不知道怎么了 package GameState; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.event.MouseEvent; import main.GamePanel; public clas

当我设置事件
鼠标单击时
应该返回主菜单,但当我单击鼠标时,它什么也不做。我想让它转到主菜单的
MENUSTATE
,但什么也没发生。我需要帮助,因为这是一个学校项目,我不知道怎么了

package GameState;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.event.MouseEvent;
import main.GamePanel;

public class HelpState extends GameState {
    private Color titleColor;
    private Font titleFont;

    public HelpState(GameStateManager gameStateManager) {
        init();
    }

    @Override
    public void init() { }

    @Override
    public void update() {
        // TODO Auto-generated method stub
    }

    @Override
    public void draw(Graphics2D g) {
        g.setColor(titleColor);
        g.setFont(titleFont);

        g.clearRect(1, 1, GamePanel.WIDTH, GamePanel.HEIGHT);
        g.drawString("Move Left: Left Arrow ", 0, 25);
        g.drawString("Move Right: Right Arrow ", 0, 45);
        g.drawString("Attack: A Button ", 0, 65); 
        g.drawString("Become Other Wumps: You must have things happened to", 0, 85);
        g.drawString("you (Eg. Get smashed by a wall). After that you must press ", 0, 95);
        g.drawString("the corresponding No. Key.", 0, 105);
    }

    private void select() {
        gsm.setState(GameStateManager.MENUSTATE);
    }

    public void mousePressed(int m) {
        if (m == MouseEvent.MOUSE_CLICKED) {
            select();
        }
    }

    @Override
    public void keyReleased(int k) {
        // TODO Auto-generated method stub
    }

    @Override
    public void keyPressed(int k) {
        // TODO Auto-generated method stub
    }
}

您应该实现MouseListener以从鼠标获取输入

如果您想检查按钮是否按下,我建议您使用ActionListener。如果您需要从中获得额外属性,请单击使用MouseStener

鼠标侦听器示例:

 import java.awt.event.MouseListener;

 public void mousePressed(MouseEvent e) {
       saySomething("Mouse pressed position "
                    + e.getPoint(), e);
    }

你的程序甚至会进入mousePressed(intm){}吗?试着在mousePressed(intm){}方法中添加@Override,看看会发生什么是个坏主意,因为实际的宽度和高度可能与您认为的不同,而且Java通常是零索引的,这意味着您可能应该从
0x0
开始。考虑提供一个说明你的问题的方法。这将减少混乱和更好的响应