Ich habe in meinem Programm eine Listening Klasse und füge diese in meinem JFrame als Listening Klasse hinzu, wenn ich mein Programm starte und eine, von mir belegte, Taste drücke passiert nicht immer etwas, also wenn es einmal geht, dann geht es immer(bis ich das programm beende) und wenn es nicht geht, dann geht es nicht, bevor ich das programm nicht neu starte, hat jemand eine idee, an was das liegen kann?
Danke schonmal im Voraus
Edit:Ich hab den Code ein bisschen gekürzt
Java:
package net;
import java.awt.event.*;
import NAO.NAO;
import NAO.Move.Move;
public class Listening implements KeyListener, MouseListener, MouseMotionListener, MouseWheelListener, WindowListener
{
int Wt=0;
int At=0;
int St=0;
int Dt=0;
public void keyPressed(KeyEvent e)
{
int key = e.getKeyCode();
switch(key)
{
case KeyEvent.VK_ESCAPE:
NAO.motion.stopWalk();
break;
case KeyEvent.VK_W:
if(Main.NAOrunning && Main.nao != null)
{
if(!Move.forward)
{
NAO.motion.walkTowards(100, 0, 0);
}
}
break;
case KeyEvent.VK_M:
Module.open("walk", null, null);
break;
case KeyEvent.VK_SPACE:
NAO.vision.saveImage();
break;
case KeyEvent.VK_ENTER:
if(Module.isSpeakDialogopen)
{
Module.NAOSD.sayTextDialog();
}
else
{
Module.open("speak", null, null);
}
break;
}
}
public void keyReleased(KeyEvent e)
{
int key = e.getKeyCode();
switch(key)
{
case KeyEvent.VK_W:
if(Main.NAOrunning && Main.nao != null)
{
NAO.motion.stopWalk();
}
break;
}
}
public void keyTyped(KeyEvent e) {}
public void mouseWheelMoved(MouseWheelEvent e)
{
if(e.getWheelRotation() > 0)
{
if(Main.isMouseLeftDown)
{
Module.HGUI.LeftP-=5;
}
else if(Main.isMouseRightDown)
{
Module.HGUI.RightP-=5;
}
}
else if(e.getWheelRotation() < 0)
{
if(Main.isMouseLeftDown)
{
Module.HGUI.LeftP+=5;
}
else if(Main.isMouseRightDown)
{
Module.HGUI.RightP+=5;
}
}
}
public void mouseDragged(MouseEvent e)
{
Main.mse.setLocation(e.getX(), e.getY());
}
public void mouseMoved(MouseEvent e)
{
Main.mse.setLocation(e.getX(), e.getY());
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e)
{
if(e.getButton() == MouseEvent.BUTTON1)
{
if(Main.isMouseControling && !Main.isMouseRightDown)
{
Main.isMouseLeftDown = true;
}
}
else if(e.getButton() == MouseEvent.BUTTON2)
{
Main.toggleMouseC();
}
else if(e.getButton() == MouseEvent.BUTTON3)
{
if(Main.isMouseControling && !Main.isMouseLeftDown)
{
Main.isMouseRightDown = true;
}
}
}
public void mouseReleased(MouseEvent e)
{
if(e.getButton() == MouseEvent.BUTTON1)
{
Main.isMouseLeftDown = false;
}
else if(e.getButton() == MouseEvent.BUTTON3)
{
Main.isMouseRightDown = false;
}
}
public void windowOpened(WindowEvent e) {}
public void windowClosing(WindowEvent e)
{
Main.disconnect(false);
}
public void windowClosed(WindowEvent e)
{
Main.disconnect(false);
}
public void windowIconified(WindowEvent e) {}
public void windowDeiconified(WindowEvent e){}
public void windowActivated(WindowEvent e) {}
public void windowDeactivated(WindowEvent e){}
}
Danke schonmal im Voraus
Edit:Ich hab den Code ein bisschen gekürzt
Zuletzt bearbeitet: