无法在cardlayout中切换卡

时间:2013-09-08 10:30:51

标签: java swing jbutton mouselistener cardlayout

我一直在研究一个有多张牌的程序 - 角色扮演角色生成器。我有四张牌,第一张是菜单卡,另外三张分别是角色生成的不同部分。但是,我遇到了菜单卡切换到不同卡的问题。

当用户按下“新角色”时,我想要切换到第一张角色卡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,然后看看那里的各种卡片布局示例,我什么都没得到。鼠标侦听器事件正在运行,因为按钮每次按下时都会返回“嘟嘟”声。

我搞砸了什么想法?我很确定这会是我错过的一些小事,但我很难看到它。

0 个答案:

没有答案