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 に設定されているため、それが問題になるとは思えません。