Einzelnen Beitrag anzeigen
Ungelesen 16.08.12, 14:21   #1
mrburns
Newbie
 
Registriert seit: Dec 2009
Beiträge: 50
Bedankt: 28
mrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punkte
Standard [Java] KeyListener reagiert nicht

Schönen Tag alle miteinander,

ich hänge seit gestern Abend, bis jetzt ohne jeglichen Erfolg , 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?
mrburns ist offline   Mit Zitat antworten