CardLayout 获取所选卡片的名称

发布于 2024-11-17 07:12:15 字数 28 浏览 4 评论 0原文

如何获取卡片布局中所选面板的字符串标识符。

How can I get the string identifier of the selected panel in card layout.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

难如初 2024-11-24 07:12:15

CardLayout 不知道当前选择的面板是什么。
调用 show() 方法时,您应该自己将其保留在内存中。

The CardLayout does not know what the currently selected panel is.
You should keep this in memory yourself, when calling the show() method.

香橙ぽ 2024-11-24 07:12:15

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

The CardLayout does not allow you to do this. However, you should be able to access the top panel of the CardLayout.

So a little work around is to give each added panel a name, equal to the string identifier. That way you can get the top card, and get it's name. This is how you do it:

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());
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文