0

抱歉标题搞砸了,因为我真的不知道我应该使用什么标题 xD 无论如何,这就是问题所在。所以我得到了这个简单的游戏,它以一个包含单个按钮的 Jframe 开始,如果按下该按钮,它将其内容更改为包含游戏本身的另一个类的内容。问题是控件不能立即工作。(控制,我的意思是当你按空格时,游戏中的角色必须射击,但因为这个问题他没有)它不能马上工作我的意思是你需要切换到另一个窗口然后回到你的游戏窗口和控件将起作用。有什么我可以用我的游戏做的,这样我就不需要切换窗口来控制工作了吗?

这是Jframe的代码:

package rtype;

import javax.swing.JButton;
import javax.swing.JFrame;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Rtype extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
public Rtype() {
    setSize(1020, 440);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLocationRelativeTo(null);
    setTitle("PROJECT JAEGER");
    setResizable(false);
    JButton startButton = new JButton("START GAME");//The JButton name.
    add(startButton);//Add the button to the JFrame.
    startButton.addActionListener(this);//Reads the action.
    setVisible(true);
}

public static void main(String[] args) {
    new Rtype();
}
public void actionPerformed(ActionEvent i) {
    getContentPane().removeAll();
    add(new Board());   
    System.out.println("The Button Works!");//what the button says when clicked.
    revalidate();
    setVisible(true); 
}

}

add(new Board()) 中的板子;是游戏的类。

4

1 回答 1

1

由于您没有提供Board课程,我会从您的描述中假设您正在使用一个或多个KeyListeners.

这是一个常见的问题KeyListener。它注册到的组件不仅必须是可聚焦的,而且必须具有当前焦点。

而不是使用KeyListener,您应该使用具有克服这些限制的机制的Key Bindings API

于 2013-09-14T02:15:35.563 回答