如何在卡片布局中获取所选面板的字符串标识符。
问问题
14179 次
2 回答
14
CardLayout 不知道当前选择的面板是什么。在调用 show() 方法时,您应该自己将其保存在内存中。
于 2011-06-28T12:13:56.853 回答
10
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());
于 2012-06-27T19:09:22.913 回答