java – 卡布局获取当前卡片串
作者:互联网
参见英文答案 > CardLayout get the selected card’s name 2个
我在应用程序中使用cardlayout并希望获取当前活动卡的名称
我尝试了很多方法但没有意思,例如这种方法似乎不再存在
panel.getLayout().getActiveItem()
我也试过这个,但它也不行
Panel card = null;
for (Component comp : cardPanel.getComponents()) {
if (comp.isVisible()) {
System.out.println(card.getName());
}
}
例如:以下stamts将多个面板添加到卡片布局中,我想返回1,2,3,4或5个当前活动的卡片:
cardPanel.add(firstP, "1");
cardPanel.add(secondP, "2");
cardPanel.add(thirdP, "3");
cardPanel.add(fourthP, "4");
cardPanel.add(fifthP, "5");
可能的方法是什么?
解决方法:
CardLayout不公开它自己的组件及其键之间的映射(这里是1,2,3,4 ……),因此使用布局本身不会揭示“卡片”是如何被散列的.
如果您希望使用getName方法,请记住您必须先自己设置,因为默认情况下未设置该字段:
firstPanel.setName("1");
cardPanel.add(firstPanel, firstPanel.getName());
然后,使用你的for循环,你将能够获得当前的卡片串.
标签:cardlayout,java,indexing,swing,layout-manager 来源: https://codeday.me/bug/20190901/1783013.html