Keylistener reagiert nicht mehr

Status
Nicht offen für weitere Antworten.

dR.LoL

Bekanntes Mitglied
Hallo,
Ich hab ein höllen Problem mit diesen f*** Keylisteners... Kann keine Lösung finden zu meinem Problem.
Habe ein KeyListener auf das JFrame gesetzt im Konstruktor.

Code:
addKeyListener(new KeyAdapter() { 
      public void keyPressed(KeyEvent ke) { 
        int code = ke.getKeyCode();
        System.out.println("Konstruktor fand KeyEvent: "+code);
        if (!(code >= 0x25/*VK_LEFT*/ && code <= 0x28/*VK_DOWN*/) && (code < KeyEvent.VK_NUMPAD1 || code == KeyEvent.VK_NUMPAD5 || code > KeyEvent.VK_NUMPAD9))
        {
          return;
        }
        if (code == KeyEvent.VK_NUMPAD8 || code == KeyEvent.VK_UP)
        {
          if (sSControl.Snake.Movin != sSControl .Snake.MOVEUP && sSControl.Snake.Movin != sSControl .Snake.MOVEDOWN)
            sSControl.Snake.Movin = sSControl.Snake.MOVEUP;
        }
        else if (code == KeyEvent.VK_NUMPAD2 || code == KeyEvent.VK_NUMPAD5 || code == KeyEvent.VK_DOWN)
        {
          if (sSControl.Snake.Movin != sSControl .Snake.MOVEDOWN && sSControl.Snake.Movin != sSControl .Snake.MOVEUP)
            sSControl.Snake.Movin = sSControl.Snake.MOVEDOWN;
        }
        else if (code == KeyEvent.VK_NUMPAD4 || code == KeyEvent.VK_LEFT)
        {
          if (sSControl.Snake.Movin != sSControl .Snake.MOVELEFT && sSControl.Snake.Movin != sSControl .Snake.MOVERIGHT)
            sSControl.Snake.Movin = sSControl.Snake.MOVELEFT;
        }
        else if (code == KeyEvent.VK_NUMPAD6  || code == KeyEvent.VK_RIGHT)
        {
          if (sSControl.Snake.Movin != sSControl .Snake.MOVERIGHT && sSControl.Snake.Movin != sSControl .Snake.MOVELEFT)
            sSControl.Snake.Movin = sSControl.Snake.MOVERIGHT;
        }
      } 
    });

Wenn ich das GUI starte wird "System.out.println("Konstruktor fand KeyEvent: "+code);" erfolgreich gemacht!
Dann starte ich mein Spiel und es hört sofort auch korrekt zu hören. Resp. gar nicht mehr!
Hatte anfänglich gedacht es sei das Problem, dass der Thread 100% auslastung braucht (Hatte ich gepostet) doch der läuft nun ganz korrekt und komme nicht mehr weiter!

Deshalb suche ich ein Opfer, welcher dieses Problem sicher im Griff hat, der sich opfert meinen Code zu studieren! ;-)

Wäre euch/dir dankbar! Hier melden, werde die Projektsourcen dann mailen.
Gruss
 
S

stev.glasow

Gast
Mach mal bitte nen anständigen Titel und der Code hilft nicht weiter.
Wenn das Problem ist, dass er gar nicht in die keyPressed(...) rein geht wie soll da die Problemursache in dieser Methode liegen, wenn du dort nur (im übrigen uns unbekannte) Variablen prüfst und setzt?
 

dR.LoL

Bekanntes Mitglied
Aha, ich weiss, dass der Code nicht weiter hilft.
Deshalb möchte ich ihn auch schicken anstatt hier das ganze Board vollzuspamen ;-)) =>Genau darum ist auch der Titel ganz korrekt ;-))
Mein Problem liegt zwischen Listenen und den Threads... Sobald der Thread startet, das Spiel somit beginnt, tut dem JFrame nicht mehr listenen ;-))

Alles klar? Nein ^^

Oder wollt ihr mein Code hier Public haben?
[~1000 Zeilen] - Unnötige Klassen ~=~ 700 Zeilen...
 

dR.LoL

Bekanntes Mitglied
Danke für den KSKB Link, bin allerdings schon sehr sehr lange an dem Problem und möchte nun mein Spiel endlich mittels Keys anstatt Buttons steuern.
Habe ihn gepostet aus dem Grund, dass nicht etliche 'Suche KeyListener'-Links gepostet werden, da ich schon viele Beispiele durchgemacht habe....


Ok ich poste mal bissel Code... obwohl mir auch mal gesagt wurde bei viel Code ist der komplette Source besser...
Code:
class ColorRectangle extends Rectangle
{
  public Color color;
}

public class daSnake implements Runnable
{
  //Constants
  private static int SIZERECT = 7;  
  private ColorRectangle cr;
  private int maxX, maxY, posX, posY;
  private double tmrJoint, tmrBeer;
  public int Movin = 0;
  public static int MOVEUP = 1, MOVEDOWN = 2, MOVELEFT = 3, MOVERIGHT = 4;
  public Thread thSnake;
  public int jointX, jointY, beerX, beerY;
  public boolean avJoint, avBeer;
  public Vector stonedSnake;
  
  /**
   * This is the default constructor of daSnake
   **/
  daSnake()
  {
    stonedSnake = new Vector();
    avJoint = false;
    avBeer = false;
    maxX = 399;
    maxY = 399;
    thSnake = new Thread(this);
  }
  
  /**
   * This method gets a new part of Rectangle (SnakePart)
   * @param void
   * @return ColorRectangle
   **/
  public ColorRectangle newRectangle()
  {
    cr = new ColorRectangle();
    cr.x = posX;
    cr.y = posY;
    cr.width = SIZERECT;
    cr.height = SIZERECT;
    cr.color = new Color(rand(256),rand(256),rand(256));
    return cr;
  }
  
  /**
   * This method adds an element of snake
   * @param void
   * @return void
   **/
  public void addSnakeElement()
  {
    int x, y;
    ColorRectangle cr = (ColorRectangle)stonedSnake.lastElement();
    x = cr.x;
    y = cr.y;
    if (Movin == MOVEUP)
      y = y + SIZERECT;
    if (Movin == MOVEDOWN)
      y = y - SIZERECT;
    if (Movin == MOVELEFT)
      x = x + SIZERECT;
    if (Movin == MOVERIGHT)
      x = x - SIZERECT;
    posX = x;
    posY = y;
    stonedSnake.addElement(newRectangle());
  }

  /**
   * This method starts the thread
   * @param void
   * @return void
   **/
  public void start()
  {
    setNewJoint();
    posX = rand(maxX);
    posY = rand(maxY);
    while (Movin == 0)
      Movin = rand(4);
    stonedSnake.addElement(newRectangle());
    addSnakeElement();
    if (thSnake.getState() == Thread.State.NEW)
      thSnake.start();
    else
      thSnake.resume();
    sSControl.viewSnake.pnlLeft.repaint();
    tmrJoint = 5;
  }
  
  /**
   * This method runs the thread
   * @param void
   * @return void
   **/
  public void run()
  {
    while(true)
    {
      try
      {
        moveSnake();
        sSControl.viewSnake.pnlLeft.repaint();
        if (avJoint == true && tmrJoint > 0)
          tmrJoint = tmrJoint - ((double)(getSleep())/1000);
        else
          tmrJoint = 0;
        if (sSControl.modelSnake.getJoints()%15==0)
        {
          setNewBeer();
        }
        if (avBeer == true && tmrBeer > 0)
          tmrBeer = tmrBeer - ((double)(getSleep())/1000);
        else
        {
          tmrBeer = 0;
          avBeer = false;
        }
        thSnake.sleep(getSleep());
      }
      catch (InterruptedException e)
      {
        //John Wayne interested...
      }
    }
  }
  
  /**
   * This method stops the thread
   * @param void
   * @return void
   **/
  public void stop()
  {
    thSnake.suspend();
    avJoint = false;
    avBeer = false;
    Movin = 0;
    stonedSnake.clear();
    sSControl.viewSnake.pnlLeft.repaint();
  }
  
  /**
   * This method moves daSnake
   * @param void
   * @return void
   **/
  public void moveSnake()
  {
    ColorRectangle cr = (ColorRectangle)stonedSnake.firstElement();
    Color col;
    int xTmp,yTmp;
    int xAlt,yAlt;
    xTmp = cr.x;
    yTmp = cr.y;
    col = cr.color;
    //Move the snake...
    if (Movin == MOVEUP)
      yTmp = yTmp - SIZERECT;
    if (Movin == MOVEDOWN)
      yTmp = yTmp + SIZERECT;
    if (Movin == MOVELEFT)
      xTmp = xTmp - SIZERECT;
    if (Movin == MOVERIGHT)
      xTmp = xTmp + SIZERECT;
    //Check playing field...
    if (xTmp < 1)
      xTmp = maxX+xTmp-SIZERECT;
    else if (xTmp + cr.width > maxX)
      xTmp = xTmp-maxX;
    else if (yTmp < 1)
      yTmp = maxY+yTmp-SIZERECT;
    else if (yTmp + cr.height > maxY)
      yTmp = yTmp-maxY;
    //Trace the rest of Snake 
    xAlt = xTmp;
    yAlt = yTmp;
    Enumeration e = stonedSnake.elements();
    while (e.hasMoreElements())
    {
      cr = (ColorRectangle)e.nextElement();
      xTmp = cr.x;
      yTmp = cr.y;
      cr.x = xAlt;
      cr.y = yAlt;
      xAlt = xTmp;
      yAlt = yTmp;
    }
    if (checkCollision())
      GameOver();
    if (avJoint == true && checkSmoking())
      smokeJoint();
    if (avBeer == true && checkBeering())
      drinkBeer();
  }  

  /**
   * This method checks a collision of snake
   * @param void
   * @return boolean
   **/
  private boolean checkCollision()
  {
    ColorRectangle firstcr = (ColorRectangle)stonedSnake.firstElement();
    int firstX = firstcr.x;
    int firstY = firstcr.y;
    int tempX, tempY;
    Enumeration e = stonedSnake.elements();
    while (e.hasMoreElements())
    {
      ColorRectangle tempcr = (ColorRectangle)e.nextElement();
      tempX = tempcr.x;
      tempY = tempcr.y;
      if (firstcr != tempcr)
      {
        if (firstX == tempX && firstY == tempY)
          return true;
      }
    }
    return false;
  }
  
  /**
   * This method checks if snake is smoking...
   * @param void
   * @return boolean
   **/
  private boolean checkSmoking()
  {
    ColorRectangle firstcr = (ColorRectangle)stonedSnake.firstElement();
    int firstX = firstcr.x;
    int firstY = firstcr.y;
    if ((firstX+SIZERECT >= jointX && firstX <= jointX+18) && (firstY+SIZERECT >= jointY && firstY <= jointY+18))
      return true;
    return false;
  }
  
  /**
   * This method let em Snake fizzle de shizzle
   * @param void
   * @return void
   **/
  private void smokeJoint()
  {
    setNewJoint();
    sSControl.modelSnake.setPoints(tmrJoint);
    sSControl.modelSnake.setJoints(sSControl.modelSnake.getJoints()+1);
    addSnakeElement();
    tmrJoint = 5;
    if (sSControl.modelSnake.getJoints()%5==0)
      sSControl.modelSnake.setSpeed(sSControl.modelSnake.getSpeed()+1);
  }
  
  /**
   * This method adds a Joint to the playing field.
   * @param void
   * @return void
   **/
  public void setNewJoint()
  {
    jointX = rand(maxX-18);
    jointY = rand(maxY-18);
    avJoint = true;
  }

  /**
   * This method checks if snake is beering...
   * @param void
   * @return boolean
   **/
  private boolean checkBeering()
  {
    ColorRectangle firstcr = (ColorRectangle)stonedSnake.firstElement();
    int firstX = firstcr.x;
    int firstY = firstcr.y;
    if ((firstX+SIZERECT >= beerX && firstX <= beerX+18) && (firstY+SIZERECT >= beerY && firstY <= beerY+18))
      return true;
    return false;
  }
  
  /**
   * This method let em Snake fizzle de bizzle
   * @param void
   * @return void
   **/
  private void drinkBeer()
  {
    sSControl.modelSnake.setPoints(tmrBeer);
    sSControl.modelSnake.setBeers(sSControl.modelSnake.getBeers()+1);
    sSControl.modelSnake.setSpeed(sSControl.modelSnake.getSpeed()-2);
    addSnakeElement();
    addSnakeElement();
    addSnakeElement();
  }
  
  /**
   * This method adds a Beer to the playing field.
   * @param void
   * @return void
   **/
  public void setNewBeer()
  {
    beerX = rand(maxX-18);
    beerY = rand(maxY-18);
    avBeer = true;
    tmrBeer = 7;
  }
  
  /**
   * This method sets a game over
   * @param void
   * @return void
   **/
  private void GameOver()
  {
    if (sSControl.modelSnake.getLives() == 0)
    {
      if (sSControl.checkHighscorelist())
      {
        String UserName = JOptionPane.showInputDialog(sSControl.viewSnake, "You are crashed and game over now!\nYou achieved "+sSControl.modelSnake.getPoints()+"!\n\nPlease enter your Username for the Highscorelist:");
        sSControl.setHighscorelist(UserName, sSControl.modelSnake.getPoints());
      }
      else
        JOptionPane.showMessageDialog(sSControl.viewSnake, "You are crashed and game over now!\nYou achieved "+sSControl.modelSnake.getPoints()+"!\n\nSorry, you are too bad for the Highscorelist!");
      thSnake.suspend();
    }
    else
    {
      sSControl.modelSnake.setLives(sSControl.modelSnake.getLives()-1);
      JOptionPane.showMessageDialog(sSControl.viewSnake, "You are crashed!\nYou respawn again with "+sSControl.modelSnake.getLives()+" Live(s)!");
    }
  }
  
  /**
   * This method runs the thread
   * @param void
   * @return int
   **/
  public int getSleep()
  {
    int iSleep;
    iSleep = sSControl.modelSnake.getSpeed();
    iSleep = (int)Math.round(100/(iSleep*0.5));
    return iSleep;
  }

  /**
   * This method stops the thread
   * @param int
   * @return int
   **/
  public int rand(int Limit)
  {
    return (int)(Math.random() * Limit);
  }
}
public class sSModel
{
  //Initialize variables
  private static int Lives, Speed, Joints, Beers, Points;
  
  /**
   * This is the default constructor of sSModel
   **/
  sSModel()
  {
    this.Lives = 0;
    this.Speed = 0;
    this.Joints = 0;
    this.Beers = 0;
    this.Points = 0;
  }
  
  /**
   * This method clears all
   * @param void
   * @return void
   **/
  public void Clear()
  {
    Lives = 0;
    Speed = 0;
    Joints = 0;
    Beers = 0;
    Points = 0;
    sSControl.viewSnake.updateRightPanel();
  }
  
  /**
   * This method sets all new
   * @param void
   * @return void
   **/
  public void New()
  {
    Lives = 3;
    Speed = 1;
    Joints = 0;
    Beers = 0;
    Points = 0;
    sSControl.viewSnake.updateRightPanel();
  }
  
  /**
   * This method gets the Lives
   * @param void
   * @return int
   **/
  public int getLives()
  {
    return Lives;    
  }
  
  /**
   * This method sets the Lives
   * @param int
   * @return void
   **/
  public void setLives(int iLives)
  {
    Lives = iLives;
    sSControl.viewSnake.lblLives.setText(Integer.toString(Lives));
  }
  
  /**
   * This method gets the Speed
   * @param void
   * @return int
   **/
  public int getSpeed()
  {
    return Speed;    
  }
  
  /**
   * This method sets the Speed
   * @param int
   * @return void
   **/
  public void setSpeed(int iSpeed)
  {
    Speed = iSpeed;
    sSControl.viewSnake.lblSpeed.setText(Integer.toString(Speed));
  }
  
  /**
   * This method gets the Joints
   * @param void
   * @return int
   **/
  public int getJoints()
  {
    return Joints;    
  }
  
  /**
   * This method sets the Joints
   * @param int
   * @return void
   **/
  public void setJoints(int iJoints)
  {
    Joints = iJoints;
    sSControl.viewSnake.lblJoints.setText(Integer.toString(Joints));
  }
  
  /**
   * This method gets the Joints
   * @param void
   * @return int
   **/
  public int getBeers()
  {
    return Beers;    
  }
  
  /**
   * This method sets the Joints
   * @param int
   * @return void
   **/
  public void setBeers(int iBeer)
  {
    Beers = iBeer;
    sSControl.viewSnake.lblBeers.setText(Integer.toString(Beers));
  }
  
  /**
   * This method gets the Joints
   * @param void
   * @return int
   **/
  public int getPoints()
  {
    return Points;    
  }
  
  /**
   * This method sets the Joints
   * @param double
   * @return void
   **/
  public void setPoints(double fTimePremium)
  {
    if (sSControl.Snake.avJoint == true)
      Points = (int) (Points+(10+(5*fTimePremium)));
    else if (sSControl.Snake.avBeer == true)
      Points = (int) (Points+(20+(10*fTimePremium)));
    sSControl.viewSnake.lblPoints.setText(Integer.toString(Points));
  }
}
public class sSControl
{
  //Initialize variables
  public static sSView viewSnake;
  public static sSModel modelSnake;
  public static daSnake Snake;
  public static String strPath;
  
  /**
   * This is the default constructor of sSControl
   **/
  sSControl()
  {
    modelSnake = new sSModel();
    viewSnake = new sSView();
    Snake = new daSnake();
    strPath = this.getClass().getProtectionDomain().getCodeSource().getLocation().toString();
    strPath = strPath.substring(6,strPath.length());
    if (strPath.substring(strPath.length()-"stonedSnake.jar".length(), strPath.length()).equals("stonedSnake.jar"))      
      strPath = strPath.substring(0,strPath.length()-"stonedSnake.jar".length());
    else
      strPath = strPath.substring(0,strPath.length());
  }
  
  /**
   * Gets the highscore list
   * @param void
   * @return String[]
   **/
  public static String[] getHighscorelist()
  {
    //Initial Variables
    String[] strArray = new String[11];
    String strLine = "";
    boolean isFakedFile = true;
    JFileChooser fLoader = new JFileChooser();
    BufferedReader br;
    //Read values from file
    try
    {
      br = new BufferedReader(new FileReader(strPath+"sSData/sSHighscores"));
      while ((strLine = br.readLine()) != null)
      {
        if (strLine.equals("********************************"))
        {
          strLine = br.readLine();
          if (strLine.equals("** stonedSnake Highscore list **"))
          {
            strLine = br.readLine();
            if (strLine.equals("********************************"))
              isFakedFile = false;
          }
        }
        if (isFakedFile==false)
        {
          //returns string like dR.LoL@1000Pts
          if (strLine.indexOf("1=") == 0)
            strArray[1] = strLine.substring(2,strLine.length());
          if (strLine.indexOf("2=") == 0)
            strArray[2] = strLine.substring(2,strLine.length());
          if (strLine.indexOf("3=") == 0)
            strArray[3] = strLine.substring(2,strLine.length());
          if (strLine.indexOf("4=") == 0)
            strArray[4] = strLine.substring(2,strLine.length());
          if (strLine.indexOf("5=") == 0)
            strArray[5] = strLine.substring(2,strLine.length());
          if (strLine.indexOf("6=") == 0)
            strArray[6] = strLine.substring(2,strLine.length());
          if (strLine.indexOf("7=") == 0)
            strArray[7] = strLine.substring(2,strLine.length());
          if (strLine.indexOf("8=") == 0)
            strArray[8] = strLine.substring(2,strLine.length());
          if (strLine.indexOf("9=") == 0)
            strArray[9] = strLine.substring(2,strLine.length());
          if (strLine.indexOf("10=") == 0)
            strArray[10] = strLine.substring(3,strLine.length());
        }
        else
        {
          System.out.println("Not a correct highscore file!");
        }
      }
      br.close();
    }
    catch (IOException e) {
      System.out.println("File could not be read!\n"+e);
    }
    return strArray;
  }
  
  /**
   * Gets the points by strArray
   * @param String[]
   * @return int
   **/
  public static int getPoints(String strArray)
  {
    int iPoints;
    String strPoints;    
    iPoints = strArray.indexOf("@");
    strPoints = strArray.substring(iPoints+1,strArray.length());
    iPoints = Integer.parseInt(strPoints);
    return iPoints;
  }
  
  /**
   * Gets the highscore list
   * @param void
   * @return boolean
   **/
  public static boolean checkHighscorelist()
  {
    String[] strGetArray = new String[11];
    strGetArray = getHighscorelist();
    if (sSControl.modelSnake.getPoints() > getPoints(strGetArray[10]))
      return true;
    return false;
  }
  
  /**
   * Gets the highscore list
   * @param String, int
   * @return void
   **/
  public static void setHighscorelist(String strUsername, int iPoints)
  {
    //Variables
    String[] strGetArray = new String[11];
    String[] strSetArray = new String[11];
    strGetArray = getHighscorelist();
    strSetArray = strGetArray.clone();
    int iRanking = 11;
    //Gets the Ranking
    for (int i=10; i>=1; i--)
    {
      if (iPoints >= getPoints(strGetArray[i]))
      {
        iRanking--;
      }
    }
    //New ranklist
    if (iRanking >= 1 && iRanking<=10)
    {
      strSetArray[iRanking] = strUsername+"@"+iPoints;
      for (int i=iRanking; i<10; i++)
      {
        strSetArray[i+1] = strGetArray[i];
      }
    }
    //Save the new ranglist now!
    //Variables for saving
    String strFile = "********************************\n";
    JFileChooser fSaver = new JFileChooser();
    BufferedWriter bw;
    //Insert content
    strFile += "** stonedSnake Highscore list **\n";
    strFile += "********************************\n";
    for (int i=1; i<=10; i++)
    {
      strFile += i+"="+strSetArray[i]+"\n";
    }
    strFile += strSetArray[0]+"\n";
    //Save the File
    try
    {
      bw = new BufferedWriter(new FileWriter(strPath+"sSData/sSHighscores"));
      bw.write(strFile);
      bw.close();
    }
    catch (IOException e) 
    {
      System.out.println(e);
    }
  }
  
  /**
   * Starts a new game
   * @param void
   * @return void
   **/
  public static void newGame()
  {
    stopGame();
    startGame();
  }

  /**
   * Starts a game
   * @param void
   * @return void
   **/
  public static void startGame()
  {
    modelSnake.New();
    Snake.start();
  }
  
  /**
   * Stops a game
   * @param void
   * @return void
   **/
  public static void stopGame()
  {
    Snake.stop();
    modelSnake.Clear();
  }
}

Danke für die Hilfe !!!
Gruss

Edit:
das Model hab ich nicht gepostet, da ich weiss, dass hier das Problem sicherlich nicht liegt! :)
 

dR.LoL

Bekanntes Mitglied
=)
Eben genau darum fragte ich auch nach einer Person die sich 'opfert' ^^ ;-))

Edit: Böhser, einfach dein Beitrag gelöscht ;-))
 
B

Beni

Gast
Ein Riesencode, nur kann man ihn a) nicht ausführen, und b) ist in diesem Code weder ein Frame noch eine Component, geschweige dann ein KeyListener zu finden.

Und damit sollen wir dir jetzt wie helfen? :wink:
 

mattulla

Bekanntes Mitglied
Habe in dem Code ganze 14 :!: -mal das Schluesselwort static gefunden......vll solltest du dich erst einmal daran machen den Missstand zu beseitigen
 

dR.LoL

Bekanntes Mitglied
Ok. Woran ist da ein Misstand?
Ja sorry zusammen tut mir leid, habe aus versehen doch den Model anstatt den GUI Teil gepostet:
Hier die GUI ;-))

Code:
public class sSView extends JFrame
{
  //Initialize variables 
  private JMenuBar mnuBar;
  private JDialog dlgHighscore, dlgHelp, dlgAbout;
  private JPanel pnlMain, pnlRight, pnlHighscore, pnlHelp, pnlAbout;
  private JButton cmdPlay = new JButton("Start!");
  public Container pnlLeft;
  public JLabel lblLives, lblSpeed, lblJoints, lblBeers, lblPoints;
  public ImageIcon imgJoint, imgBeer;
  private JButton bUp,bDown,bLeft,bRight;
  private BufferedImage imgHighscore;
  private ImageIcon imgHelp, imgAbout;
  private Icon icnHighscore;
  private String[] Highscorelist;
  
  /**
   * This is the default constructor of sSView
   **/
  public sSView()
  {
    super();
    Initialize();
    imgJoint = new ImageIcon(daSnake.class.getClassLoader().getResource("stonedSnake/sSImages/imgJoint.gif"));
    imgBeer = new ImageIcon(daSnake.class.getClassLoader().getResource("stonedSnake/sSImages/imgBeer.gif"));
  }

  /**
   * This method Initializes JFrame
   * @return void
   **/
  private void Initialize()
  {
    //Init Frame
    this.setSize(550, 456);
    this.setLocation(200, 0);
    this.setTitle("stonedSnake ~Alpha~ - Can you really doing the snake stoned enough?!?");
    this.setResizable(false);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setFocusable(true);
    this.addKeyListener(new KeyAdapter() { 
      public void keyPressed(KeyEvent ke) { 
        int code = ke.getKeyCode();
        System.out.println("Konstruktor fand KeyEvent: "+code);
        if (!(code >= 0x25/*VK_LEFT*/ && code <= 0x28/*VK_DOWN*/) && (code < KeyEvent.VK_NUMPAD1 || code == KeyEvent.VK_NUMPAD5 || code > KeyEvent.VK_NUMPAD9))
        {
          return;
        }
        if (code == KeyEvent.VK_NUMPAD8 || code == KeyEvent.VK_UP)
        {
          if (sSControl.Snake.Movin != sSControl .Snake.MOVEUP && sSControl.Snake.Movin != sSControl .Snake.MOVEDOWN)
            sSControl.Snake.Movin = sSControl.Snake.MOVEUP;
        }
        else if (code == KeyEvent.VK_NUMPAD2 || code == KeyEvent.VK_NUMPAD5 || code == KeyEvent.VK_DOWN)
        {
          if (sSControl.Snake.Movin != sSControl .Snake.MOVEDOWN && sSControl.Snake.Movin != sSControl .Snake.MOVEUP)
            sSControl.Snake.Movin = sSControl.Snake.MOVEDOWN;
        }
        else if (code == KeyEvent.VK_NUMPAD4 || code == KeyEvent.VK_LEFT)
        {
          if (sSControl.Snake.Movin != sSControl .Snake.MOVELEFT && sSControl.Snake.Movin != sSControl .Snake.MOVERIGHT)
            sSControl.Snake.Movin = sSControl.Snake.MOVELEFT;
        }
        else if (code == KeyEvent.VK_NUMPAD6  || code == KeyEvent.VK_RIGHT)
        {
          if (sSControl.Snake.Movin != sSControl .Snake.MOVERIGHT && sSControl.Snake.Movin != sSControl .Snake.MOVELEFT)
            sSControl.Snake.Movin = sSControl.Snake.MOVERIGHT;
        }
      } 
    }); 
    
    //init Container pnlLeft
    pnlLeft = new JComponent()
    {     
      public void paintComponent(Graphics g) 
      {
        g.setColor(Color.BLACK);
        g.drawRect(0,0,400,400);
        try
        {
          if (null != sSControl.Snake.stonedSnake)
          {
            Enumeration s = sSControl.Snake.stonedSnake.elements();
            while (s.hasMoreElements())
            {
              ColorRectangle cr = (ColorRectangle)s.nextElement();
              g.setColor(cr.color);
              g.fillRect(cr.x, cr.y, cr.width, cr.height);
            }
          }
          if (sSControl.Snake.avJoint == true)
            imgJoint.paintIcon(sSControl.viewSnake.pnlLeft, g, sSControl.Snake.jointX, sSControl.Snake.jointY);
          if (sSControl.Snake.avBeer == true)
            imgBeer.paintIcon(sSControl.viewSnake.pnlLeft, g, sSControl.Snake.beerX, sSControl.Snake.beerY);
        }
        catch (NullPointerException ex)
        {
          //John Wayne interested...
        }
      } 
    };
    pnlLeft.setLayout(null);
    pnlLeft.setSize(400,455);
    //Init Menu
    mnuBar = new JMenuBar();
    mnuBar.add(getMenuGame());
    mnuBar.add(getMenuHelp());
    //Init Panels
    pnlMain = new JPanel();
    pnlMain.setLayout(new BorderLayout());
    pnlMain.setSize(550,456);
    pnlRight = new JPanel();
    pnlRight.setSize(150,456);
    pnlRight.setLayout(new GridLayout(20,2));
    pnlRight.add(new JLabel(""));
    cmdPlay.addActionListener(
        new ActionListener() { 
          public void actionPerformed(ActionEvent event) {
            onClickcmdPlay();
          }
        }
      );
    pnlRight.add(cmdPlay);
    pnlRight.add(new JLabel("Lives: "));
    pnlRight.add(lblLives = new JLabel(Integer.toString(sSControl.modelSnake.getLives())));
    pnlRight.add(new JLabel("Speed: "));
    pnlRight.add(lblSpeed = new JLabel(Integer.toString(sSControl.modelSnake.getSpeed())));
    pnlRight.add(new JLabel("Joints: "));
    pnlRight.add(lblJoints = new JLabel(Integer.toString(sSControl.modelSnake.getJoints())));
    pnlRight.add(new JLabel("Beers: "));
    pnlRight.add(lblBeers = new JLabel(Integer.toString(sSControl.modelSnake.getBeers())));
    pnlRight.add(new JLabel("Points: "));
    pnlRight.add(lblPoints = new JLabel(Integer.toString(sSControl.modelSnake.getPoints())));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    pnlRight.add(new JLabel(""));
    bUp = new JButton("Up");
    bDown = new JButton("Down");
    bLeft = new JButton("Left");
    bRight = new JButton("Right");
    bUp.addActionListener(
        new ActionListener() { 
          public void actionPerformed(ActionEvent event) {
            if (sSControl.Snake.Movin != daSnake.MOVEUP && sSControl.Snake.Movin != sSControl.Snake.MOVEDOWN)
              sSControl.Snake.Movin = daSnake.MOVEUP;
          }
        }
      );
    bDown.addActionListener(
        new ActionListener() { 
          public void actionPerformed(ActionEvent event) {
            if (sSControl.Snake.Movin != daSnake.MOVEDOWN && sSControl.Snake.Movin != sSControl.Snake.MOVEUP)
              sSControl.Snake.Movin = daSnake.MOVEDOWN;
          }
        }
      );
    bLeft.addActionListener(
        new ActionListener() { 
          public void actionPerformed(ActionEvent event) {
            if (sSControl.Snake.Movin != daSnake.MOVELEFT && sSControl.Snake.Movin != sSControl.Snake.MOVERIGHT)
              sSControl.Snake.Movin = daSnake.MOVELEFT;
          }
        }
      );
    bRight.addActionListener(
        new ActionListener() { 
          public void actionPerformed(ActionEvent event) {
            if (sSControl.Snake.Movin != daSnake.MOVERIGHT && sSControl.Snake.Movin != sSControl.Snake.MOVELEFT)
              sSControl.Snake.Movin = daSnake.MOVERIGHT;
          }
        }
      );
    
    pnlRight.add(bUp);
    pnlRight.add(new JLabel(""));
    pnlRight.add(bLeft);
    pnlRight.add(bRight);
    pnlRight.add(bDown);
    pnlRight.add(new JLabel(""));
    pnlMain.add(pnlLeft,BorderLayout.CENTER);
    pnlMain.add(pnlRight,BorderLayout.EAST);
    //Add components into Frame
    this.setJMenuBar(mnuBar);
    this.getContentPane().add(pnlMain);
    //Set the Frame visible
    this.setVisible(true);
  }
  
  /** 
   * This method starts/stops playing
   * @param void
   * @return void
   **/
  protected void onClickcmdPlay()
  {
    if (cmdPlay.getText().equals("Start!"))
    {
      sSControl.startGame();
      cmdPlay.setText("Stop!");
    }
    else if (cmdPlay.getText().equals("Stop!"))
    {
      sSControl.stopGame();
      cmdPlay.setText("Start!");
    }
  }

  /** 
   * This method updates the right panel
   * @param void
   * @return void
   **/
  public void updateRightPanel()
  {
    lblLives.setText(Integer.toString(sSControl.modelSnake.getLives()));
    lblSpeed.setText(Integer.toString(sSControl.modelSnake.getSpeed()));
    lblJoints.setText(Integer.toString(sSControl.modelSnake.getJoints()));
    lblBeers.setText(Integer.toString(sSControl.modelSnake.getBeers()));
    lblPoints.setText(Integer.toString(sSControl.modelSnake.getPoints()));
  }
  
  /** 
   * This method gets the Menu Game
   * @param void
   * @return JMenu 
   **/
  private JMenu getMenuGame()
  {
    //Initialize components
    JMenu mnuGame;
    JMenuItem mnuItemGame;
    mnuGame = new JMenu("Game");
//  MenuItem New
    mnuItemGame = new JMenuItem("New Game!");
    setCtrlAccelerator(mnuItemGame, 'N');
    mnuItemGame.addActionListener(
      new ActionListener() { 
        public void actionPerformed(ActionEvent event) {
          sSControl.newGame();
        }
      }
    );
    mnuGame.add(mnuItemGame);
//  MenuItem Highscores
    mnuItemGame = new JMenuItem("HighScores");
    setCtrlAccelerator(mnuItemGame, 'S');
    mnuItemGame.addActionListener(
      new ActionListener() { 
        public void actionPerformed(ActionEvent event) {
          showHighscores();
        }
      }
    );
    mnuGame.add(mnuItemGame);
//  MenuItem Exit
    mnuItemGame = new JMenuItem("Exit");
    setCtrlAccelerator(mnuItemGame, 'E');
    mnuItemGame.addActionListener(
      new ActionListener() { 
        public void actionPerformed(ActionEvent event) {
          System.exit(0);
        }
      }
    );
    mnuGame.add(mnuItemGame);
    //returns the Menu
    return mnuGame;
  }
  
  /** 
   * This method gets the Menu Help
   * @return JMenu 
   **/
  private JMenu getMenuHelp()
  {
    //Initialize components
    JMenu mnuHelp;
    JMenuItem mnuItemHelp;
    mnuHelp = new JMenu("?");
    //MenuItem Help
    mnuItemHelp = new JMenuItem("Help");
    setCtrlAccelerator(mnuItemHelp, 'H');
    mnuItemHelp.addActionListener(
      new ActionListener() { 
        public void actionPerformed(ActionEvent event) {
          showHelp();
        }
      }
    );
    mnuHelp.add(mnuItemHelp);
    //MenuItem About
    mnuItemHelp = new JMenuItem("About");
    setCtrlAccelerator(mnuItemHelp, 'A');
    mnuItemHelp.addActionListener(
      new ActionListener() { 
        public void actionPerformed(ActionEvent event) {
          showAbout();
        }
      }
    );
    mnuHelp.add(mnuItemHelp);
    //returns the Menu
    return mnuHelp;
  }
  
  /** 
   * This method shows the stonedSnake Highscore list
   * @param void
   * @return void 
   **/
  public void showHighscores()
  {
    //Init components
    final String strBroker = new String("               ");
    Highscorelist = new String[11];
    dlgHighscore = new JDialog(this,"stonedSnake - Highscores", true);    
    dlgHighscore.setLocation(250, 0);
    dlgHighscore.setSize(237,450);
    dlgHighscore.setResizable(false);
    JLabel lblHighscore = new JLabel();
    JPanel pnlHighscore = new JPanel(new BorderLayout());
    JPanel pnlHighscoreTop = new JPanel(new BorderLayout());
    JPanel pnlHighscoreCenter1 = new JPanel(new GridLayout(1,1));
    JPanel pnlHighscoreCenter2 = new JPanel(new GridLayout(7,1));
    JPanel pnlHighscoreBottom = new JPanel(new BorderLayout());
    JButton cmdHighscoreClose = new JButton("Close!");
    cmdHighscoreClose.addActionListener(
      new ActionListener() { 
        public void actionPerformed(ActionEvent event) {
          dlgHighscore.setVisible(false);
        }
      }
    );    
    Highscorelist = sSControl.getHighscorelist();
    try 
    {
      imgHighscore = ImageIO.read(sSView.class.getClassLoader().getResource("stonedSnake/sSImages/imgHighscore.jpg")); 
      final String[] strUsername = new String[4];
      final String[] strPoints = new String[4];
      final int xHolder;
      final int yHolder;
      xHolder = 0;
      yHolder = 13;
      for (int i=1; i<=3; i++)
      {
        int ioAt = Highscorelist[i].indexOf("@");
        strUsername[i] = Highscorelist[i].substring(0, ioAt);
        strPoints[i] = Highscorelist[i].substring(ioAt+1, Highscorelist[i].length());
      }
      icnHighscore = new Icon(){
        public int getIconHeight() { 
          return 250; 
        } 
        public int getIconWidth() { 
          return 250; 
        } 
        public void paintIcon(Component c, Graphics g, int x, int y) {
          g.setColor(Color.BLACK); 
          g.drawImage(imgHighscore, 0, 0, null);
          g.drawString("1. "+strUsername[1], 74, 224); 
          g.drawString("2. "+strUsername[2], 15, 187); 
          g.drawString("3. "+strUsername[3], 165, 192);
          g.drawString(strPoints[1]+" Pts", 74+xHolder, 224+yHolder); 
          g.drawString(strPoints[2]+" Pts", 15+xHolder, 187+yHolder); 
          g.drawString(strPoints[3]+" Pts", 165+xHolder, 192+yHolder);
        } 
      };
    }
    catch (IOException e) {
      System.out.println(e);
    }
    //add components
    pnlHighscoreCenter1.add(new JLabel(icnHighscore));
    pnlHighscoreCenter2.add(new JLabel(strBroker+"  4. "+Highscorelist[4]+" Pts"));
    pnlHighscoreCenter2.add(new JLabel(strBroker+"  5. "+Highscorelist[5]+" Pts"));
    pnlHighscoreCenter2.add(new JLabel(strBroker+"  6. "+Highscorelist[6]+" Pts"));
    pnlHighscoreCenter2.add(new JLabel(strBroker+"  7. "+Highscorelist[7]+" Pts"));
    pnlHighscoreCenter2.add(new JLabel(strBroker+"  8. "+Highscorelist[8]+" Pts"));
    pnlHighscoreCenter2.add(new JLabel(strBroker+"  9. "+Highscorelist[9]+" Pts"));
    pnlHighscoreCenter2.add(new JLabel(strBroker+"10. "+Highscorelist[10]+" Pts"));
    pnlHighscoreTop.add(pnlHighscoreCenter1,BorderLayout.NORTH);
    pnlHighscoreTop.add(pnlHighscoreCenter2,BorderLayout.CENTER);
    pnlHighscoreBottom.add(cmdHighscoreClose);
    pnlHighscore.add(pnlHighscoreTop,BorderLayout.CENTER);
    pnlHighscore.add(pnlHighscoreBottom,BorderLayout.SOUTH);
    dlgHighscore.add(pnlHighscore);
    //sets the DialogAbout visible!
    dlgHighscore.setVisible(true);
  }
  
  /**
   * This method shows the Help dialog.
   * @param void
   * @return void
   */
  public void showHelp()
  {
    //Init components
    dlgHelp = new JDialog(this,"stonedSnake - Help", true);    
    dlgHelp.setLocation(250, 0);
    dlgHelp.setSize(450,239);
    dlgHelp.setResizable(false);
    JLabel lblHelp = new JLabel();
    JPanel pnlHelp = new JPanel(new BorderLayout());
    JPanel pnlHelpTop = new JPanel(new BorderLayout());
    JPanel pnlHelpBottom = new JPanel(new BorderLayout());
    JButton cmdHelpClose = new JButton("Close!");
    cmdHelpClose.addActionListener(
      new ActionListener() { 
        public void actionPerformed(ActionEvent event) {
          dlgHelp.setVisible(false);
        }
      }
    );
    imgHelp = new ImageIcon(sSView.class.getClassLoader().getResource("stonedSnake/sSImages/imgHelp.gif"));
    lblHelp.setText("<html>This is the stonedSnake help!
" +
        "This game knows the following keys:

" +
        "Arrow Left -> Snake turns to the left
" +
        "Arrow Right -> Snake turns to the right

" +
        "Ctrl+N -> New game
" +
        "Ctrl+S -> Show Highscores
" +
        "Ctrl+E -> Exit game
" +
        "Ctrl+H -> stonedSnake - Help
" +
        "Ctrl+A -> stonedSnake - About</html>");
    //add components
    pnlHelpTop.add(new JLabel(imgHelp),BorderLayout.WEST);
    pnlHelpTop.add(lblHelp,BorderLayout.CENTER);
    pnlHelpBottom.add(cmdHelpClose);
    pnlHelp.add(pnlHelpTop,BorderLayout.CENTER);
    pnlHelp.add(pnlHelpBottom,BorderLayout.SOUTH);
    dlgHelp.add(pnlHelp);
    //sets the DialogAbout visible!
    dlgHelp.setVisible(true);
  }
  
  /**
   * This method shows the About dialog.
   * @param void
   * @return void
   */
  public void showAbout()
  {
    //Init components
    dlgAbout = new JDialog(this,"stonedSnake - About", true);    
    dlgAbout.setLocation(250, 0);
    dlgAbout.setSize(300,180);
    dlgAbout.setResizable(false);
    JLabel lblAbout = new JLabel();
    JPanel pnlAbout = new JPanel(new BorderLayout());
    JPanel pnlAboutTop = new JPanel(new BorderLayout());
    JPanel pnlAboutBottom = new JPanel(new BorderLayout());
    JButton cmdAboutClose = new JButton("Close!");
    cmdAboutClose.addActionListener(
      new ActionListener() { 
        public void actionPerformed(ActionEvent event) {
          dlgAbout.setVisible(false);
        }
      }
    );
    imgAbout = new ImageIcon(sSView.class.getClassLoader().getResource("stonedSnake/sSImages/imgAbout.gif"));
    lblAbout.setText("<html>This game is written by dR.LoL,
a stoned dude from a little hicksville!

(s)Right to Smoke 2006</html>");
    //add components
    pnlAboutTop.add(new JLabel(imgAbout),BorderLayout.WEST);
    pnlAboutTop.add(lblAbout,BorderLayout.CENTER);
    pnlAboutBottom.add(cmdAboutClose);
    pnlAbout.add(pnlAboutTop,BorderLayout.CENTER);
    pnlAbout.add(pnlAboutBottom,BorderLayout.SOUTH);
    dlgAbout.add(pnlAbout);
    //sets the DialogAbout visible!
    dlgAbout.setVisible(true);
  }
  
  /**
   * This method creates the CTRL-Accelerator.
   * @param JMenuItem, char
   * @return void
   */
  private void setCtrlAccelerator(JMenuItem myMenuItem, char chrKey)
  {
    KeyStroke ks = KeyStroke.getKeyStroke(chrKey, Event.CTRL_MASK);
    myMenuItem.setAccelerator(ks);
  }
}

Zum Punkt a) Hatte erwähnt, dass er nicht vollständig sei, jetzt ist ers aber dann trozdem bald ^^ (Fehlen allerdings noch Package definitionen etc. ausserhalb...)
Aber eben habe anstatt View das Model gepostet...

Troz den 14mal static, glaube ich nicht, dass mein Problem etwas damit zu tun haben soll... Wenn doch sage mir wo ;-)) Bei den meisten meinte Eclipse allerdings es soll static gemacht werden... (Warning, die danach verschwand)
 

mattulla

Bekanntes Mitglied
Das dein Problem mit dem static zusammen haengt habe ich nie behauptet. Trotzdem ist es alles andere als schoen, dass in der Klasse sSControl so wie ich auf dem ersten Blick gesehen hab alles static ist. Aus meiner Sicht (hab nur kurz drueber geschaut) braucht da gar nix static zu sein. Kann mir nicht vorstellen das es eine gute Begruendung dafuer gibt dort alles static zu machen. Ich wuerde sogar behaupten das die warnings auch nicht wieder auftauchen wenn du alle statics rausnimmst.
 

dR.LoL

Bekanntes Mitglied
*g*
Recht hast du, keine Warnings mehr da... Dafür Fehler ;-)
Aber lassen wir das mal sein btw. static or non-static wäre schöner, wenn der Listener endlich korrekt funktioniert, und da denke ich liegt das Problem IRGENDWO/WIE/WAS mit dem Thread der Snake!
 

mattulla

Bekanntes Mitglied
Hab mal nen bissel rumprobiert und eine Loesung gefunden, ich weiss zwar nicht warum und wieso aber immerhin laeuft es. Du musst den KeyListener nicht auf das Frame, sondern auf deinen Button cmdPlay also:

Code:
cmdPlay.addKeyListener(new KeyAdapter() { 
      public void keyPressed(KeyEvent ke) { 
        int code = ke.getKeyCode(); 
        System.out.println("Konstruktor fand KeyEvent: "+code); 
        if (!(code >= 0x25/*VK_LEFT*/ && code <= 0x28/*VK_DOWN*/) && (code < KeyEvent.VK_NUMPAD1 || code == KeyEvent.VK_NUMPAD5 || code > KeyEvent.VK_NUMPAD9)) 
        { 
          return; 
        } 
        if (code == KeyEvent.VK_NUMPAD8 || code == KeyEvent.VK_UP) 
        { 
          if (control.Snake.Movin != control .Snake.MOVEUP && control.Snake.Movin != control .Snake.MOVEDOWN) 
            control.Snake.Movin = control.Snake.MOVEUP; 
        } 
        else if (code == KeyEvent.VK_NUMPAD2 || code == KeyEvent.VK_NUMPAD5 || code == KeyEvent.VK_DOWN) 
        { 
          if (control.Snake.Movin != control .Snake.MOVEDOWN && control.Snake.Movin != control .Snake.MOVEUP) 
            control.Snake.Movin = control.Snake.MOVEDOWN; 
        } 
        else if (code == KeyEvent.VK_NUMPAD4 || code == KeyEvent.VK_LEFT) 
        { 
          if (control.Snake.Movin != control .Snake.MOVELEFT && control.Snake.Movin != control .Snake.MOVERIGHT) 
            control.Snake.Movin = control.Snake.MOVELEFT; 
        } 
        else if (code == KeyEvent.VK_NUMPAD6  || code == KeyEvent.VK_RIGHT) 
        { 
          if (control.Snake.Movin != control .Snake.MOVERIGHT && control.Snake.Movin != control .Snake.MOVELEFT) 
            control.Snake.Movin = control.Snake.MOVERIGHT; 
        } 
      } 
    });
 

dR.LoL

Bekanntes Mitglied
Boa heftig!!!
Ich danke dir soo...
habs mit sooo vielen Panels/JComps sogar Labels probiert... doch noch nie mit dem Button!

N1!
Danke dir :]><
 
B

Beni

Gast
Hm, eine mögliche Erklärung: ein KeyListener reagiert nur, wenn die Component auf der er liegt den Fokus hat. Aber nur eine Component kann den Fokus haben, bei dir offenbar der Button. Wenns das ist: den KeyListener kann man auch allen Componenten die im Programm vorkommen hinzufügen, da wird dann immer eine sein, die den Fokus hat.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M KeyListener reagiert nicht Java Basics - Anfänger-Themen 4
S KeyListener reagiert nicht. Java Basics - Anfänger-Themen 4
P Input/Output KeyListener reagiert nicht Java Basics - Anfänger-Themen 4
B Keylistener auf JSpinner reagiert nicht? Java Basics - Anfänger-Themen 3
G KeyListener reagiert nicht Java Basics - Anfänger-Themen 5
P Wie kann ich meine Keylistener Klasse unterscheiden lassen, von welcher "Quelle" der Input kommt? Java Basics - Anfänger-Themen 2
B Bild per KeyListener drehen Java Basics - Anfänger-Themen 1
javalux123 Keylistener auf andere Fenster Java Basics - Anfänger-Themen 3
F Problem mit KeyListener in kombination mit dem ActionListener Java Basics - Anfänger-Themen 4
M Mit KeyListener Farbe von Label ändern Java Basics - Anfänger-Themen 13
N Java Keylistener Java Basics - Anfänger-Themen 2
B KeyListener funkioniert nicht Java Basics - Anfänger-Themen 2
F KeyListener Java Basics - Anfänger-Themen 3
S Erste Schritte 2D Grafik Probleme mit KeyListener. Java Basics - Anfänger-Themen 18
G KeyListener und JButton vertragen sich nicht Java Basics - Anfänger-Themen 1
J-Gallus Keylistener verstehen Java Basics - Anfänger-Themen 17
S Keylistener Java Basics - Anfänger-Themen 16
S Keylistener im Grafikfenster Java Basics - Anfänger-Themen 3
H Mouse- und KeyListener Probleme? Java Basics - Anfänger-Themen 5
N KeyListener in Thread Java Basics - Anfänger-Themen 0
LexeB4F for schliefe in KeyListener Java Basics - Anfänger-Themen 3
R KeyListener auslagern Java Basics - Anfänger-Themen 3
J KeyListener aus anderer Klasse bereitet Probleme Java Basics - Anfänger-Themen 1
Z KeyListener funktioniert nicht? Weshalb? Java Basics - Anfänger-Themen 8
T KeyListener Java Basics - Anfänger-Themen 2
Gfreak23 Input/Output KeyListener funktioniert auf Laptop nicht allerdings auf Tower-PC Java Basics - Anfänger-Themen 8
J KeyListener - mal wieder... Java Basics - Anfänger-Themen 2
TheSorm KeyListener Problem Java Basics - Anfänger-Themen 4
M KeyListener Java Basics - Anfänger-Themen 3
S KeyListener/ActionListener/paint()/repaint() Java Basics - Anfänger-Themen 3
D KeyListener nicht mehr aktiv nach ActionPerformed Java Basics - Anfänger-Themen 2
C Mehrere Tasten beim KeyListener gleichzeitig lesen Java Basics - Anfänger-Themen 2
L Input/Output Java 3D mit KeyListener Java Basics - Anfänger-Themen 1
L KeyListener ohne textfeld Java Basics - Anfänger-Themen 4
J KeyListener,MouseListener,MouseMotionListener und static Java Basics - Anfänger-Themen 7
P Klassen Bei KeyEvent in KeyListener den Tastendruck abbrechen Java Basics - Anfänger-Themen 5
B KeyListener als allgemeine Methode Java Basics - Anfänger-Themen 5
H KeyListener auf ganzes Fenster setzen Java Basics - Anfänger-Themen 14
0 KeyListener ausserhalb der Applikation Java Basics - Anfänger-Themen 5
G KeyListener Java Basics - Anfänger-Themen 4
D KeyListener und ActionListener Problem Java Basics - Anfänger-Themen 6
J KeyListener funtioniert nicht! Java Basics - Anfänger-Themen 3
J KeyListener Java Basics - Anfänger-Themen 11
G KeyListener, Fokus Java Basics - Anfänger-Themen 8
K Input/Output KeyListener funktioniert nicht Java Basics - Anfänger-Themen 3
A Input/Output Keylistener Aktiv schalten Java Basics - Anfänger-Themen 8
J keyListener - Genau 1 Aktion soll bei 1 Tastenausdruck ausgeführt werden Java Basics - Anfänger-Themen 11
S KeyListener Java Basics - Anfänger-Themen 2
A Erste Schritte Problem mit KeyListener Java Basics - Anfänger-Themen 6
Maxim6394 KeyListener geht nicht Java Basics - Anfänger-Themen 15
A Wie KeyListener adden? Java Basics - Anfänger-Themen 15
Maxim6394 KeyListener funktioniert nicht Java Basics - Anfänger-Themen 20
U KeyListener StackOverflowError Java Basics - Anfänger-Themen 2
W KeyListener auf Applet mit Runnable Java Basics - Anfänger-Themen 4
M Apfel-Spiel KeyListener Java Basics - Anfänger-Themen 33
J KeyListener (keyTyped) funktioniert nicht Java Basics - Anfänger-Themen 9
Luk10 KeyListener Java Basics - Anfänger-Themen 13
S KeyListener aus anderer Klasse hinzufügen Java Basics - Anfänger-Themen 19
P KeyListener im Applet Java Basics - Anfänger-Themen 2
S KeyListener-Anwendung Java Basics - Anfänger-Themen 7
O KeyListener funktioniert nur wenn er will Java Basics - Anfänger-Themen 2
A KeyListener funzt ned Java Basics - Anfänger-Themen 6
D KeyListener, Unterscheidung Groß/Kleinbuchstaben Java Basics - Anfänger-Themen 3
S KeyListener als class? Java Basics - Anfänger-Themen 4
F Applet mit KeyListener, "Alt"-Taste und Konflikt mit Browser Java Basics - Anfänger-Themen 2
P KeyListener Java Basics - Anfänger-Themen 2
S KeyListener für einfaches Programm Java Basics - Anfänger-Themen 3
S KeyListener aktiv auch wenn minimiert? Java Basics - Anfänger-Themen 4
Z Globaler Keylistener Java Basics - Anfänger-Themen 2
V KeyListener Beispiel Java Basics - Anfänger-Themen 13
T canvas killt KeyListener Java Basics - Anfänger-Themen 2
Das Brot Nach .add(JRadioButton) funktioniert der KeyListener nicht mehr Java Basics - Anfänger-Themen 2
J Keylistener aber wie jTextField auswahl? Java Basics - Anfänger-Themen 3
D KeyListener, nichts passiert Java Basics - Anfänger-Themen 6
U ActionListener und KeyListener - KeyListener funktioniert nicht Java Basics - Anfänger-Themen 2
D Keylistener zu langsam Java Basics - Anfänger-Themen 7
C Problem mit JPopupMenu, JTextField und Keylistener Java Basics - Anfänger-Themen 2
G Keylistener in einer Schleife Java Basics - Anfänger-Themen 9
M problem mit keylistener Java Basics - Anfänger-Themen 2
M TabbedPane: KeyListener funktioniert nicht mehr Java Basics - Anfänger-Themen 8
N KeyListener ohne GUI? Java Basics - Anfänger-Themen 5
M KeyListener Java Basics - Anfänger-Themen 3
T KeyListener wird nicht ausgelöst Java Basics - Anfänger-Themen 6
O KeyListener Java Basics - Anfänger-Themen 8
Developer_X KeyListener ohne JFrame Java Basics - Anfänger-Themen 13
H KeyListener Java Basics - Anfänger-Themen 4
Developer_X KeyListener Actions (hat mit Java3D zu tun) Java Basics - Anfänger-Themen 20
H KeyListener funktioniert nicht Java Basics - Anfänger-Themen 8
Developer_X JFrame soll KeyListener adden Java Basics - Anfänger-Themen 32
F Keylistener Java Basics - Anfänger-Themen 12
hdi KeyListener : keyTyped() nicht nutzbar? Java Basics - Anfänger-Themen 1
StickToFreak Runnable + KeyListener? Java Basics - Anfänger-Themen 32
dl85hej Keylistener Java Basics - Anfänger-Themen 16
H KeyListener will nicht reagieren Java Basics - Anfänger-Themen 5
R Fehlersuche - KeyListener, KeyAdaper - Nichts Klappt! Java Basics - Anfänger-Themen 2
G Prob. mit KeyListener und Unterklasse Java Basics - Anfänger-Themen 5
G Keylistener nur besimmte Zeichen zulassen Java Basics - Anfänger-Themen 8
hdi keylistener hat keinen fokus oder: listener ohne frame? Java Basics - Anfänger-Themen 10
A KeyListener funktioniert nicht Java Basics - Anfänger-Themen 7
D KeyListener Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben