1

私は、複数のカードを使用するプログラム、つまりロールプレイング キャラクター ジェネレーターに取り組んできました。私は 4 枚のカードを持っています。最初の 1 枚はメニュー カードで、残りの 3 枚はそれぞれ異なるキャラクター生成の役割を果たします。ただし、メニュー カードが別のカードに切り替わると問題が発生します。

ユーザーが「新しいキャラクター」を押したときに、最初のキャラクターカードであるCardCharに切り替えたいと思います。そのままのコードは以下のとおりです。

public class mabGUI implements MouseListener {


final static String Menu = "Menu";
final static String CharCreation = "Character Creation";
final static String CharSkills = "Character Skills Screen";
final static String CharEquip = "Character Equipment";

private JPanel panel;

public void paneCreation(Container Pane) {

    JPanel cardMenu = new JPanel();
    JPanel cardChar = new JPanel();
    JPanel cardSkills = new JPanel();
    JPanel cardEquip = new JPanel();

    panel = new JPanel(new CardLayout());
    panel.add(cardMenu, Menu);
    cardMenu.setBackground(new Color(210, 180, 140));
    panel.add(cardChar, CharCreation);
    cardChar.setBackground(new Color(210, 100, 140));
    panel.add(cardSkills, CharSkills);
    panel.add(cardEquip, CharEquip);

    Pane.add(panel, BorderLayout.CENTER);


    //CardMenu
    cardMenu.setLayout(null);

    JButton btnNew = new JButton("New Character");
    btnNew.addMouseListener(new MouseAdapter() {
        public void mouseClicked(MouseEvent e) {
            System.out.println("beep");
            CardLayout cl = (CardLayout) (panel.getLayout());
            cl.show(panel, "CharCreation");
        }
    });
    btnNew.setBounds(20, 20, 150, 30);
    cardMenu.add(btnNew);

}

public void initialise() {

    JFrame frame = new JFrame("MBCharGen");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setMinimumSize(new Dimension(800, 600));

    mabGUI MBCG = new mabGUI();
    MBCG.paneCreation(frame.getContentPane());

    frame.pack();
    frame.setVisible(true);
}

メイン クラスが初期化関数をアクティブにし、必要な gui アイテムを作成するように設定しました。

クラスでカード レイアウトを宣言し、show から setvisible に切り替えて、さまざまなカード レイアウトの例を調べてみましたが、何も得られません。ボタンが押されるたびに「ビープ」を返すため、マウスリスナーイベントが機能しています。

私が台無しにしているアイデアはありますか?見逃した小さなものになると確信していますが、見るのに苦労しています.

4

0 に答える 0