我一直在研究一个有多张牌的程序 - 角色扮演角色生成器。我有四张牌,第一张是菜单卡,另外三张分别是角色生成的不同部分。但是,我遇到了菜单卡切换到不同卡的问题。
当用户按下“新角色”时,我想要切换到第一张角色卡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,然后看看那里的各种卡片布局示例,我什么都没得到。鼠标侦听器事件正在运行,因为按钮每次按下时都会返回“嘟嘟”声。
我搞砸了什么想法?我很确定这会是我错过的一些小事,但我很难看到它。