java中切换卡怎样实现,Java:CardLayout在卡之间切换

我有类’Frame’,它扩展了JFrame和separetad JPanels:MainMenu和SinglePanel

我正在使用CardLayout,但是当使用buttonSingle和powrot按钮切换回面板时我遇到了问题.所以我的问题是如何使用这些按钮更改/交换卡?

我的Frame类:

public class Frame extends JFrame{

CardLayout cl = new CardLayout();

final MainMenu menuPanel = new MainMenu();

final SinglePanel singlePanel = new SinglePanel();

public Frame(){

setLayout(cl);

add(menuPanel,"menu");

add(singlePanel,"single");

setSize(200, 200);

setLocationRelativeTo(null);

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

setVisible(true);

setEnabled(true);

swapView("menu");

}

public void swapView(String view){

cl.show(getContentPane(),view);

}

}

我的MainMenu课程:

public class MainMenu extends JPanel{

public MainMenu(){

setLayout(new BoxLayout(this , BoxLayout.Y_AXIS));

add(Box.createVerticalGlue());

JButton buttonSingle = new JButton("Single");

buttonSingle.setAlignmentX(Component.CENTER_ALIGNMENT);

buttonSingle.addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent e) {

}

});

add(buttonSingle);

add(Box.createVerticalGlue());

JButton buttonMulti = new JButton("Multiplayer");

buttonMulti.setAlignmentX(Component.CENTER_ALIGNMENT);

buttonMulti.addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent e) {

throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.

}

});

add(buttonMulti);

add(Box.createVerticalGlue());

JButton buttonExit = new JButton("Wyjście");

buttonExit.setAlignmentX(Component.CENTER_ALIGNMENT);

buttonExit.addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent e) {

System.exit(0);

}});

add(buttonExit);

add(Box.createVerticalGlue());

}

}

我的SinglePanel类

public class SinglePanel extends JPanel{

SinglePanel(){

setLayout(new FlowLayout());

JButton powrot = new JButton("Wróć do menu");

powrot.addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent e) {

}

});

add(powrot);

}

}

主要课程:

public class Main {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

// TODO code application logic here

/*MainMenu mM = new MainMenu();*/

Frame f = new Frame();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值