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