1

我一直在开发一个包含多张卡片的程序——一个角色扮演角色生成器。我有四张卡片,第一张是菜单卡片,另外三张各做角色生成的不同部分。但是,我在菜单卡切换到不同的卡时遇到了问题。

我希望它在用户按下“新字符”时切换到第一个字符卡 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