【发布时间】:2017-03-07 20:07:08
【问题描述】:
我想用CardLayout 和一个参数创建一个JPanel。我有以下代码:
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
我该怎么做才能解决这个问题?
我已经尝试在main方法中更改参数,但没有任何解决方案。
【问题讨论】:
标签: java swing exception layout-manager cardlayout