【发布时间】:2012-12-14 02:56:26
【问题描述】:
getContentPane().setLayout(new CardLayout());
CardLayout x = (CardLayout) getLayout();
我使用的是 Netbeans,在设计管理器中我选择了我的 JFrame 内容作为 CardLayout。但是到目前为止我还不能让它工作。我在 initComponenets 调用之后设置了上面的代码,但我仍然有这个错误:
java.awt.BorderLayout cannot be cast to java.awt.CardLayout
不知何故,我有 BorderLayout 而不是 CardLayout。这怎么可能?我刚刚将布局设置为 CardLayout。 PS:我的课程扩展了 javax.swing.JFrame。
【问题讨论】:
-
1) 我通常发现将单个
JPanel添加到内容窗格或将其设置为 内容更容易、更简洁窗格。然后任何与边框、布局、颜色有关的事情都可以通过JPanel完成。 2) "my class extendsjavax.swing.JFrame" 除非添加或覆盖方法,否则不要扩展框架。只保留一个参考。 -
我是 netbeans 和 java 新手,所以我不太了解边界和其他东西。我使用来自 Swing GUI Forms>Application Sample Form 的 netbeans 生成的代码。然后添加了 2 个面板和 CardLayout 布局。当我尝试切换时,我收到这些错误。如果有任何更简单的方法来解决这个问题,我将不胜感激。
-
请参阅 this answer 以获取有效的
CardLayout。我认为你应该暂时把 Netbeans 放在一边,学习如何编写 Java。 -
我知道如果我手动编写 JPanel 和框架,它就可以工作。我刚刚从 Eclipse 切换到 Netbeans,因为它具有本地 GUI 管理器,并且花了很多时间从 SWT 切换到 Swing。不幸的是,我没有时间通过代码编写 GUI,因为我必须专注于项目的后端。我只需要快速修复 Netbenas,我可以继续编写后端代码。
-
“我只需要快速修复 Netbenas” 雇用某人。由于“过于本地化”而投票结束。
标签: java swing jframe layout-manager cardlayout