Java KeyListener在另一个类中,将其添加到JFrame时出现问题 头等舱

Java KeyListener在另一个类中,将其添加到JFrame时出现问题 头等舱,java,swing,awt,keylistener,Java,Swing,Awt,Keylistener,[……] 新问题:当我把关键侦听器的这段代码放在“Spielfenster”类中时,它工作得很好。问题在哪里 第二个问题(现在对我来说不是很重要,但也很高兴知道):如果我在“Steuerung”类中创建了一个“Spielfenster”对象,框架每秒会打开10次 谢谢你以前的工作!Palm1)对于Swing,通常在基于AWT的较低级别上使用键绑定,KeyListener。有关如何使用它们的详细信息,请参阅。2) 为了更快地获得更好的帮助,请发布一个。3) 请对代码、输入/输出和结构化文档(如HT

[……]

新问题:当我把关键侦听器的这段代码放在“Spielfenster”类中时,它工作得很好。问题在哪里

第二个问题(现在对我来说不是很重要,但也很高兴知道):如果我在“Steuerung”类中创建了一个“Spielfenster”对象,框架每秒会打开10次

谢谢你以前的工作!Palm

1)对于Swing,通常在基于AWT的较低级别上使用键绑定,
KeyListener
。有关如何使用它们的详细信息,请参阅。2) 为了更快地获得更好的帮助,请发布一个。3) 请对代码、输入/输出和结构化文档(如HTML或XML)使用代码格式。为此,请选择示例并单击消息发布/编辑表单上方的
{}
按钮。4) 源代码中只有一行空白就足够了!5) 不要延伸框架或其他顶级容器。而是创建并使用一个实例。6)
setLayout(空)javagui可能必须在许多平台上工作,在不同的屏幕分辨率上&使用不同的plaf。因此,它们不利于部件的精确放置。要为健壮的GUI组织组件,请使用布局管理器或它们的组合,以及空白的布局填充和边框。
 private void spielfenster() {
        setSize(1280, 720);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("");
        setLayout(null);
        setLocationRelativeTo(null);

        addKeyListener(new Steuerung());  
    }   
    private void run() {
        while(true){

            if(we.nachRechts == true && we.mariox < (1280 - 38)){
                we.mariox += 4;
                repaint();
            }
            if(we.nachLinks == true && we.mariox > 0){
                we.mariox -= 4;
                repaint();
            }

            try {Thread.sleep(10);} catch (InterruptedException e) {e.printStackTrace();}
        }
    }
package game;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class Steuerung extends KeyAdapter{

    public Werte we = new Werte();  //object, to get access to the global values in   class "Werte"

    public void keyPressed(KeyEvent p){
        int keys = p.getKeyCode();
        if(keys == KeyEvent.VK_D){we.nachRechts = true;}
        if(keys == KeyEvent.VK_S ){we.nachLinks  = true;}
    }
    public void keyReleased(KeyEvent r){
        int key = r.getKeyCode();
        if(key == KeyEvent.VK_D){we.nachRechts = true;}
        if(key == KeyEvent.VK_S ){we.nachLinks  = true;}

    }
}