0

さて、今私は JLayeredPane を含む JFrame を持っています。これでゲーム GUI が実行されます。このフレームの横にボタンを追加して、ボタンを介してユーザーからの入力を取り込めるようにします。何か案は?

class mapGUI extends JFrame{
        layeredPane = new JLayeredPane();
    mapSize = new Dimension(mapColumn * 16 , mapRow * 16);

    layeredPane.setPreferredSize(mapSize);
    //Adding the layeredPane to the frame.
    getContentPane().add(layeredPane);

    //Adds the appropriate labels to the panels and adds them to the layeredPane.
    addPlayerPos();
    addDungeonItems();
    addDungeonFloor();

    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setResizable(false);
    pack();
    setLocationRelativeTo(null);
    setVisible(true);
}

これは、JFrame を作成して JLayeredPane を追加するコードの一部です。

4

3 に答える 3

4

1) JLayeredPaneを使用しないでください。最大 6 つのレイヤーに制限があるためです。(Java6)ベースのJLayer (Java7)JXLayerを使用してください。

2) JLayeredPaneの使用は約setSize/setBoundsであり、サイズ変更可能には快適ではありませんContainer

3) JLayeredPaneの代わりにCardLayoutを使用します。

4) またはJTabbedPaneを使用する

于 2012-04-20T12:34:57.270 に答える
1

ゲーム全体でボタンを使用する場合は、BorderLayoutを使用してボタンをレイアウトの東/西に配置し、LayeredPaneをセンターに追加できます。ボタンをゲーム画面と重ねる必要がある場合は、layeredPaneObj.add(buttonPanel,new Integer(0))これを使用してパネルを上部に保持できます。

于 2012-04-20T12:18:26.953 に答える
1

まず、レイアウト マネージャーに関する基本的なことを学ぶ必要があります。前述のように、要件に応じて BorderLayout を特別に見てください。

于 2012-04-20T12:25:54.930 に答える