0
我想用CardLayout
创建一个带参数的JPanel
。我有以下代码:Java在JFrame中创建cardLayout,构造函数参数为
public class MainFrame extends JFrame{
private JPanel contentPane;
private CardLayout cardLayout;
private String card;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
MainFrame frame = new MainFrame("");
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public MainFrame(String card) {
initComponents();
cardLayout = new CardLayout();
if(card.equals("ADMIN")){
contentPane.revalidate();
cardLayout.show(this.contentPane, "ADMIN");
}else if(card.equals("USER")){
contentPane.revalidate();
cardLayout.show(this.contentPane, "USER");
}
}
private void initComponents() {
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation(dim.width/2-this.getSize().width/2, dim.height/2-this.getSize().height/2);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(1280, 800);
this.contentPane = new JPanel();
this.contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
this.contentPane.setLayout(cardLayout);
this.contentPane.add(new PanelOne(), "ADMIN");
this.contentPane.add(new PanelTwo(), "USER");
setContentPane(this.contentPane);
}
但是,如果我运行此代码我得到一个异常:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException:
wrong parent for CardLayout
我有什么做的,解决这个问题?
我已经尝试在主要方法中更改参数,但没有任何解决方案。
谢谢你,你救了我的一天 – leonkuehn