人。我的项目设计是使用Netbeans的GUI Builder进行的硬编码设计和设计的组合。我决定使用GUI Builder for RAD和快速设计,因为我们已经落后于计划。
所以我的问题是如何在为面板使用卡片布局时为卡片分配名称。我知道如果不使用GUI Builder,您只需编写cardContainerPanel.add(card1Panel,"card1")
即可。 card1
作为card1Panel的String
标识符。但我希望能够传递一个String variable
作为卡名。
像,
String card1 = "card1";
然后
cardContainerPanel.add(card1Panel, card1)
1。)如果只使用您在Card Name上键入的字符串
,则可以使用面板的“属性”选项在Netbeans GUI Builder上执行此操作我需要在itemChange
的{{1}}活动期间切换到不同的卡片。
这是我到目前为止所写的内容。
JComboBox
我很感激任何帮助。
感谢。
答案 0 :(得分:3)
在IDE中硬编码卡的名称是无关紧要的。
相关的是您想要交换卡时使用的卡名称。在这种情况下,您无法使用变量来指定要切换到的卡名称。
实际上,您似乎正在使用组合框来选择要显示的卡。因此,您需要做的就是确保卡名称与组合框中显示的值相同。
然后在您的ItemListener中,您只需使用以下内容来交换卡片:
cardLayout.show(cards, (String)evt.getItem());
有关工作示例,请参阅How to Use CardLayout上的Swing教程中的部分。
答案 1 :(得分:0)
我能够使用addLayoutComponent()
方法解决它,该方法将面板添加到Card Layout对象并接受字符串变量作为其第二个参数。
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);
//constructor
public UserManagementGUI() {
initComponents();
loadUsersList();
settingsComboBox.setModel(dcm);
}
private void settingsComboBoxItemStateChanged(java.awt.event.ItemEvent evt) {
CardLayout cl = (CardLayout)(cardContainerPanel.getLayout());
cl.addLayoutComponent(homePermissionsPanel, HOME);
cl.addLayoutComponent(administrationPermissionsPanel, ADMIN);
cl.show(cardContainerPanel, (String)evt.getItem());
}