MouseListener
sınıfı Herhangi bir tıklamadan bağımsız olarak, kod bölümünde hiç bulunmadım. Merak ediyorum ki sadece dinleyiciye sahip olmak benim için iyi çalışmadığı için, Creature
sınıfımda başka bir şeye ihtiyacım olup olmadığını merak ediyordum.MouseListener sınıfı hiç çağrılmadı mı?
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) {}
}
}
? Sadece bir sınıf oluşturmak yeterli değildir. Olayları almak için o örnekte olmasını istediğiniz bileşen (ler) üzerinde bir dinleyici sınıfının bir örneğini kaydetmelisiniz. Bunlardan hiçbirini sunmuyorsun. Yanlış bileşen üzerinde kayıt ve tescil yapılmaması, herhangi bir olayı gözlemlememenin en olası nedenleridir. –