伙计们我项目的设计是硬编码设计和使用Netbeans的GUI Builder进行设计的结合。由于我们进度落后,因此我决定将GUI Builder用于RAD和快速设计。

所以我的问题是当使用面板的Card Layout时如何为Cardpanel分配名称。我知道如果不使用GUI Builder,您可以简单地编写cardContainerPanel.add(card1Panel,"card1")card1作为card1Panel的String标识符。但是我想做的就是传递String variable作为卡名。

喜欢,

String card1 = "card1";


然后
cardContainerPanel.add(card1Panel, card1)

1.)当它仅将您在卡名上输入的内容作为字符串时,如何使用面板的“属性”选项在Netbeans GUI Builder上执行此操作

java - (卡布局)设置JComboBox的CardPanels卡名-LMLPHP

我需要在itemChange上的JComboBox事件期间切换到其他卡。

到目前为止,这是我写的内容。

private void settingsComboBoxItemStateChanged(java.awt.event.ItemEvent evt) {
        CardLayout cl = (CardLayout)(cardContainerPanel.getLayout());
        cl.show(cardContainerPanel, (String)evt.getItem());
    }

    private void loadSettingsComboxBoxModel(){
        String HOME = "Home";
        String ADMIN = "Administration";
        String ADMIN_CURC = "Administration > Curriculum";
        String ADMIN_DISCOUNTS = "Administration > Discounts";
        String ADMIN_SECTIONS = "Administration > Sections";
        String ADMIN_USERS = "Administration > Users";
        String ADMIN_SCHED = "Administration > Schedule";
        String ADMIN_YRLEVEL = "Administration > Year Level";
        String PAYMENT = "Payment";
        String REGISTRATION = "Registration";
        String STUDENTS = "Students";
        String FACULTY = "Faculty";
        String REPORTS = "Reports";
        String SECTIONS = "Sections";

        String settingsComboBoxItems[] =
            {HOME,ADMIN,ADMIN_CURC,ADMIN_DISCOUNTS,
                ADMIN_SECTIONS,ADMIN_USERS,ADMIN_SCHED,
                ADMIN_YRLEVEL,PAYMENT,REGISTRATION,STUDENTS,FACULTY,REPORTS,SECTIONS};
        DefaultComboBoxModel dcm = new DefaultComboBoxModel(settingsComboBoxItems);
        settingsComboBox.setModel(dcm);
    }


java - (卡布局)设置JComboBox的CardPanels卡名-LMLPHP

java - (卡布局)设置JComboBox的CardPanels卡名-LMLPHP

我将不胜感激。

谢谢。

最佳答案

在IDE中对卡的名称进行硬编码无关紧要。

重要的是要交换卡时使用的卡名称。在这种情况下,没有理由不能使用变量指定要交换到的卡名。

实际上,您似乎正在使用组合框来选择要显示的卡。因此,您所需要做的就是确保卡名与组合框中显示的值相同。

然后,在ItemListener中,您只需使用以下内容交换卡:

cardLayout.show(cards, (String)evt.getItem());


有关工作示例,请参见Swing教程中How to Use CardLayout的部分。

09-28 13:00