为什么我的 CardLayout .show() 没有做任何事情... Java Netbean

Why my CardLayout .show() is not doing anything... Java Netbean

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {  
    CardLayout card = (CardLayout)main_panel.getLayout();
    card.show(main_panel, "jPanel1");
}                                        

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { 
    CardLayout card = (CardLayout)main_panel.getLayout();
    card.show(main_panel, "jPanel2");
}

嘿伙计们,我需要使用 CardLayout 来处理我现有的项目之一,但它从来没有用过!所以我尝试制作一个新表格,而不是按照 How to use CardLayout with Netbeans GUI Builder 中的教程,但我仍然无法让它工作...单击这些按钮后,什么也不会发生。有什么帮助吗?

card.show(main_panel, "cardname");

您应该传递卡片名称,而不是卡片布局中子面板的变量名称。您当前传递的面板名称不是卡片 names.normally netbeans set card names as card1,card2...etc 。您可以通过从导航中选择子面板 [jpanel1,2..] 来查看卡片名称,并且在 属性 window 布局类别中有一行 cardname

查看此图片

在这个例子(图片)中你可以看到 cardname 是 card2 所以如果你想显示这个选择的按钮你应该使用

card.show(main_panel, "card2");

但不是

card.show(main_panel, "jButton1");