java - (卡片布局)为JComboBox设置CardPanels的卡片名称

标签 java swing layout jcombobox cardlayout

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

所以我的问题是在对面板使用卡片布局时如何为卡片面板指定名称。我知道如果不使用 GUI 生成器,您可以简单地编写 cardContainerPanel.add(card1Panel,"card1")card1 作为card1Panel 的String 标识符。但我希望能够做的是将 String 变量 作为卡名称传递。

喜欢,

String card1 = "card1";

然后
cardContainerPanel.add(card1Panel,card1)

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

enter image description here

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

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

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); 
    }

enter image description here

enter image description here

如果有任何帮助,我将不胜感激。

谢谢。

最佳答案

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

相关的是当你想要交换卡牌时使用的卡牌名称。在这种情况下,您没有理由不能使用变量来指定要交换到的卡名称。

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

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

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

请参阅 Swing 教程中 How to Use CardLayout 的部分一个工作示例。

关于java - (卡片布局)为JComboBox设置CardPanels的卡片名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35941237/

相关文章:

java - MYSQL 中特定列中的重复项显示为空

java - Jaxb2Marshaller 和原始类型

java - 如何在indexOf中使用int[][]之外的列表?

另一个面板上的 Java 透明面板

java - 在 swing 中制作自定义 UI

html - 三列 css 布局 + Toggleable 一

android - 没有足够的空间来展示广告

java - 如果不执行位置

java - 在框架上为 Jpanel 分配空间

jquery - 什么会导致 HTML block 元素重叠?