Java MouseListener类从未打过电话?
我在代码段中拥有的Java MouseListener类从未打过电话?,java,user-interface,mouselistener,Java,User Interface,Mouselistener,我在代码段中拥有的MouseListener类永远不会被调用,无论是否单击。我想知道我的生物课程是否还需要其他东西,因为只有听众在场对我来说不太合适 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Creature { private static int catchCounter = 0, missCounter = 0;//Used to track the amount of
MouseListener
类永远不会被调用,无论是否单击。我想知道我的生物
课程是否还需要其他东西,因为只有听众在场对我来说不太合适
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Creature
{
private static int catchCounter = 0, missCounter = 0;//Used to track the amount of misses and catches
//----------------------------------------------------
//Listener class to see if the creature was clicked on
//----------------------------------------------------
private class ClickListener implements MouseListener
{
public void mousePressed(MouseEvent event)
{
System.out.println("this works");
if (GamePanel.xContainNeg < event.getX() && event.getX() < GamePanel.xContainPos)
{
if (GamePanel.yContainNeg < event.getY() && event.getY() < GamePanel.yContainPos)
{
catchCounter++;
if (catchCounter == 10)
{
//Ends game if they won
JOptionPane.showMessageDialog(null, "Congratulations! You won!");
GamePanel.timer.stop();
}
else
{
//Continues game if not
GamePanel.timer.restart();
GamePanel.stats.setText("Catches: " + catchCounter + " \tMisses: " + missCounter);
}
}
else
{
missCounter++;
if (missCounter == 10)
{
//Ends game if lost
JOptionPane.showMessageDialog(null, "You missed 3 times! You lose!");
GamePanel.timer.stop();
}
else
{
//continues game if not
GamePanel.timer.restart();
GamePanel.stats.setText("Catches: " + catchCounter + " \tMisses: " + missCounter);
}
}
}
else
{
missCounter++;
if (missCounter == 10)
{
//ends game if lost
JOptionPane.showMessageDialog(null, "You missed 3 times! You lose!");
GamePanel.timer.stop();
}
else
{
//continues game if not
GamePanel.timer.restart();
GamePanel.stats.setText("Catches: " + catchCounter + " \tMisses: " + missCounter);
}
}
}
//Empty methods
public void mouseReleased(MouseEvent event) {}
public void mouseClicked(MouseEvent event) {}
public void mouseExited(MouseEvent event) {}
public void mouseEntered(MouseEvent event) {}
}
}
import javax.swing.*;
导入java.awt.*;
导入java.awt.event.*;
公营动物
{
private static int catchCounter=0,missCounter=0;//用于跟踪未命中和捕获的数量
//----------------------------------------------------
//侦听器类以查看是否单击了该生物
//----------------------------------------------------
私有类ClickListener实现MouseListener
{
公共无效鼠标按下(鼠标事件)
{
System.out.println(“本工程”);
if(GamePanel.xContainNeg
这就是你所有的吗?你的主要方法是什么?您从未将鼠标侦听器实现到任何东西,您需要一个组件并添加鼠标侦听器,比如您有一个JPanel
JPanel panel = new JPanel();
panel.addMouseListener(//*add mouse listener here*//);
这是你所有的吗?你的主要方法是什么?您从未将鼠标侦听器实现到任何东西,您需要一个组件并添加鼠标侦听器,比如您有一个JPanel
JPanel panel = new JPanel();
panel.addMouseListener(//*add mouse listener here*//);
你凭什么认为听众会收到任何事件?仅仅创建一个类是不够的。必须在希望侦听器类的实例从中接收事件的组件上注册该类的实例。你什么都不做。到目前为止,注册失败和注册错误的组件是不观察任何事件的最可能原因。您认为侦听器会收到任何事件的原因是什么?仅仅创建一个类是不够的。必须在希望侦听器类的实例从中接收事件的组件上注册该类的实例。你什么都不做。到目前为止,注册失败和注册错误的组件是没有观察到任何事件的最可能原因。我切换了这个监听器并将其放入一个Panel类中,但它仍然无法工作。我将把.addMouseListener()方法放在哪里?在ClickListener类或Panel类中?您的Panel类是否扩展了JPanel?如果是这样的话,那么您可以这样做。addMouseListener()而不是创建一个新的JPanel对象。一旦你有了它,确保你也调用了鼠标监听器。你能提供剩下的代码吗?帮助你会容易得多,还有另外两门课。我切换了这个监听器并将其放入一个Panel类中,但它仍然无法工作。我将把.addMouseListener()方法放在哪里?在ClickListener类或Panel类中?您的Panel类是否扩展了JPanel?如果是这样的话,那么您可以这样做。addMouseListener()而不是创建一个新的JPanel对象。一旦你有了它,确保你也调用了鼠标监听器。你能提供剩下的代码吗?帮助你会容易得多