import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.ArrayList;
public class Game extends JPanel{
private static JFrame primary= new JFrame("Game");
private JButton x1;
public Game(){
x1= new JButton("YES");
x1.addActionListener(new LevelChoice(1));
add(x1);
}
public static void setScreen(JPanel jp){
//primary.removeAll();
//System.out.println("hi");
//primary.revalidate();
//primary.repaint();
}
public static void main(String[] args){
primary.setPreferredSize(new Dimension(1000, 700));
/*primary.add(new LevelHUD("xxxxxxxxxxxxxxxxxxxx" +
"xoooooooooooooooooox" +
"xoooooooooooooooooox" +
"xooomoooooooooooooox" +
"xoooooooooxoooooooox" +
"xoooooooooxooooomoox" +
"xoooommoooxxxxooooox" +
"xoooomooooooooooooox" +
"xoooomooomooooooooox" +
"xooomooooolooomoooox" +
"xoooomcoooooooooooox" +
"xooomococoooooooooox" +
"xooomocoooloooooooox" +
"xgoomocoooooooooooox" +
"xcooooogooooooooooox" +
"xocooooocoooooooooox" +
"xoococooolooogooooox" +
"xoooooooooooooooooox" +
"xxxxxxxxxxxxxxxxxxxx"));*/
primary.add(new Game());
primary.setResizable(false);
primary.setVisible(true);
primary.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
primary.pack();
}
private class LevelChoice implements ActionListener{
private int level;
public LevelChoice(int i){
level=i;
}
public void actionPerformed(ActionEvent e) {
//Game.setScreen(new LevelHUD(gamelevel1));
primary.add(new LevelHUD("xxxxxxxxxxxxxxxxxxxx" +
"xoooooooooooooooooox" +
"xoooooooooooooooooox" +
"xooomoooooooooooooox" +
"xoooooooooxoooooooox" +
"xoooooooooxooooomoox" +
"xoooommoooxxxxooooox" +
"xoooomooooooooooooox" +
"xoooomooomooooooooox" +
"xooomooooolooomoooox" +
"xoooomcoooooooooooox" +
"xooomococoooooooooox" +
"xooomocoooloooooooox" +
"xgoomocoooooooooooox" +
"xcooooogooooooooooox" +
"xocooooocoooooooooox" +
"xoococooolooogooooox" +
"xoooooooooooooooooox" +
"xxxxxxxxxxxxxxxxxxxx"));
revalidate();
}
}
}
好的,所以我有一个大约有 12 个类 atm 的游戏,但我不会对此进行详细介绍 - 我的游戏涉及玩家通过按键侦听器使用箭头键的移动。这是我的主要课程- 现在发生的事情是这样的。我正在努力做到这一点,以便人们可以选择他们想要在 A 级或 B 级上玩的关卡。然后我添加一个包含该游戏关卡供用户玩的 JPanel——如果我在主要方法,一切正常!
但是,当我单击按钮然后添加 JPanel 时,玩家无法移动,仅此而已 - 但是,关卡中的所有怪物都可以正常工作。
有什么想法吗?ButtonListener 是否覆盖 KeyListener 之类的?顺便说一句,setFocusable 在游戏级别面板类中已经设置为 true,所以我怀疑这是一个问题