小智 9
CardLayout不允许您这样做.但是,您应该能够访问CardLayout的顶部面板.
因此,稍微解决一下是为每个添加的面板命名,等于字符串标识符.这样你就可以获得顶级卡,并得到它的名字.这是你如何做到的:
final String CARD1 = "Card 1";
final String CARD2 = "Card 2";
JPanel panel = new JPanel(new CardLayout());
JPanel card1 = new JPanel();
card1.setName(CARD1);
JPanel card2 = new JPanel();
card2.setName(CARD2);
panel.add(card1);
panel.add(card2);
//now we want to get the String identifier of the top card:
JPanel card = null;
for (Component comp : panel.getComponents()) {
if (comp.isVisible() == true) {
card = (JPanel) comp;
}
}
System.out.println(card.getName());
Run Code Online (Sandbox Code Playgroud)