gpt4 book ai didi

java - 使用 getParent() 在 CardLayout 中的卡片之间切换

转载 作者:行者123 更新时间:2023-12-01 16:04:13 25 4
gpt4 key购买 nike

我正在编写一个应用程序,其中使用 CardLayout 在两个叠置的面板之间进行交换。

有一个名为Top的JPanel,它的布局是CardLayout。在这个 JPanel 内部有一个名为 CMatch 的 JPanel。每当用户单击 CMatch 面板中的提交按钮时,我希望将一个新的 JPanel 添加到顶部,该 JPanel 是根据用户输入的内容自定义构建的,并且将显示它将而不是原始的 CMatch 面板。所有这些都是使用 CardLayout 完成的。

但是,这些都是不同文件中的不同类(带有 CardLayout 的顶部面板、顶部面板内的面板 CMatch 以及自定义构建的面板)。因此,我尝试使用以下命令将新面板添加到顶部面板,然后显示它:

(此代码发生在 CMatch 类中):


private void submitButtionActionPerformed(ActionEvent e) {
CardLayout cl = (CardLayout)(this.getParent().getLayout());
cl.addLayoutComponent(new CChoice(), "college_choices");
cl.show(this.getParent(), "college_choices");
}

但是,这不起作用。所以我想知道,我做错了什么?非常感谢任何建议,谢谢!

最佳答案

不知道这是否有什么区别,但我总是直接将组件添加到容器中:

String cardName = "college_choices";
Container parent = this.getParent();
parent.add(new CChoice(), cardName);
CardLayout cl = (CardLayout)parent.getLayout();
cl.show(parent, cardName);

关于java - 使用 getParent() 在 CardLayout 中的卡片之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2998538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com