myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   [Java] KeyListener reagiert nicht (https://mygully.com/showthread.php?t=2681561)

mrburns 16.08.12 14:21

[Java] KeyListener reagiert nicht
 
Schönen Tag alle miteinander,

ich hänge seit gestern Abend, bis jetzt ohne jeglichen Erfolg :cry:, an dem Problem, dass ein JFrame einfach nicht auf Tastatureingaben reagieren will. Ich hab das ganze schon mehrmals überprüft und Alternativen getestet aber weder das noch googeln hat mir bis jetzt geholfen, deshalb wende ich mich jetzt mal an euch ;)

Hier das JFrame...
Code:

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;

public class edFenster extends JFrame implements Runnable
{
    private editor ed;
   
    class butt extends JButton
    {
        public butt()
        {
            super("Speichern ...");
            this.addActionListener(new ActionListener()
            {
                @Override public void actionPerformed(ActionEvent e)
                {
                    ed.getLVL().save(new File(ed.getFile(true)));
                }
            });
        }
    }
   
    public edFenster()
    {
        super();
        ed=new editor();
        Thread t=new Thread(this);
       
        this.setSize((level.width*20) + 20,(level.height*20) + 70);
        this.setResizable(false);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        this.setLayout(new BorderLayout(5,5));
       
        this.add(ed);
        this.add(new butt(), BorderLayout.PAGE_END);
        this.addKeyListener(ed);
        this.addMouseListener(ed);
       
        t.start();
        this.setVisible(true);
    }
   
    @Override public void run()
    {
        while(true) repaint();
    }
}

..und hier der Inhalt (JPanel)...
Code:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.filechooser.FileFilter;
import java.io.File;
import java.io.Reader;
import java.io.Writer;
import java.io.FileWriter;
import java.io.FileReader;
import java.io.IOException;

public class editor extends JPanel implements MouseListener, KeyListener
{
 

   

   
   

   

       
   


   
   
    @Override public void mouseExited(MouseEvent em)
    {
   
    }
    @Override public void mouseEntered(MouseEvent em)
    {
   
    }
    @Override public void mouseReleased(MouseEvent em)
    {
   
    }
    @Override public void mousePressed(MouseEvent em)
    {
      switch(em.getButton())
        {
            case MouseEvent.BUTTON1:
                currentLVL.toggleWall((em.getX()-5)/20,(em.getY()-24)/20); break;
            case MouseEvent.BUTTON2: ;
            case MouseEvent.BUTTON3:
            if (em.getClickCount()==2)
            {
                currentLVL.setSpawn((em.getX()-5)/20,(em.getY()-24)/20 , 2); break;
            }
            else
            {
                currentLVL.setSpawn((em.getX()-5)/20,(em.getY()-24)/20 , 1); break;
            }
            default: ;
        }
    }
    @Override public void mouseClicked(MouseEvent em)
    {
   
    }
    @Override public void keyReleased(KeyEvent e)
    {
        System.err.println("||");
    }
    @Override public void keyPressed(KeyEvent e)
    {
        System.err.println("||");
    }
    @Override public void keyTyped(KeyEvent e)
    {
        System.err.println("||");
        switch(e.getKeyCode())
        {
            case KeyEvent.VK_UP:    currentLVL.setDir(2,1);break;
            case KeyEvent.VK_DOWN:  currentLVL.setDir(4,1);break;
            case KeyEvent.VK_RIGHT: currentLVL.setDir(3,1);break;
            case KeyEvent.VK_LEFT:  currentLVL.setDir(1,1);break;
            case KeyEvent.VK_W:    currentLVL.setDir(2,2);break;
            case KeyEvent.VK_A:    currentLVL.setDir(1,2);break;
            case KeyEvent.VK_S:    currentLVL.setDir(4,2);break;
            case KeyEvent.VK_D:    currentLVL.setDir(3,2);break;
        }
    }
   

   

   
   

   

       
   


}

Sachen, die mit dem Problem nicht zu tun haben, hab ich einfach mal gespoilert.

Durch
Code:

System.err.println("||");
wollte ich einfach eine Rückmeldung, wenn irgendwas mit einer Taste passiert, bis jetzt ist aber nichts passiert...
Kann mir irgendjemand sagen, warum der KeyListener nicht reagiert?

ProgMaster 16.08.12 16:57

Was sagt der Debugger?

mrburns 16.08.12 17:52

Garnichts. - Wär ja auch sonst zu einfach. ;)

\\E\\ Grad hab ich's auch nochmal mit dem Debugger von Netbeans versucht, der will mir auch nichts erzählen. :-/


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:12 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.