【问题标题】:How can I get the card layout of an jInternalPane?如何获得 jInternalPane 的卡片布局?
【发布时间】:2014-06-20 16:35:30
【问题描述】:

我在jDesktopPane 中有一个jInternalPanejDesktopPane 位于具有 BorderLayout 布局的 jPanel 内。

在我的内部窗格中,我正在尝试以编程方式切换卡片。我有以下相关的代码片段:

public void switchCards() {
    CardLayout cl = (CardLayout)(internalFrame1.getLayout());
    cl.show(internalFrame1, "card1"); //Where card1 is a jPanel
}

但是,在错误跟踪中,我可以看到以下内容:

javax.swing.plaf.basic.BasicInternalFrameUI$Handler cannot be cast to java.awt.CardLayout.

有人可以指出正确的方向以正确处理此错误吗?我很想学习如何做到这一点!

非常感谢。

【问题讨论】:

  • 把JPanel放到JInternalFrame

标签: java swing user-interface cardlayout jinternalframe


【解决方案1】:

您将在 JInternalFrame 的内容窗格上使用 CardLayout,而不是内部框架本身。

您可以只设置内容窗格的布局:

Container contentPane = internalFrame.getContentPane();
contentPane.setLayout( new CardLayout() );

contentPane.add(panel1, "Card1");
contentPane.add(panel2, "Card2");

那么你的 switchCards() 方法将是:

Container contentPane = internalFrame.getContentPane();
CardLayout cl = (CardLayout)(contentPane.getLayout());
cl.show(contentPane, "card1"); //Where card1 is a jPanel

【讨论】:

  • 抱歉回复晚了!我出去旅行了。感谢您消除我的任何困惑。您的代码完全解释了我所缺少的,我现在明白了。感谢您的宝贵时间!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-08-08
  • 2019-12-24
  • 2011-12-14
  • 2017-11-10
  • 1970-01-01
  • 1970-01-01
  • 2012-12-14
相关资源
最近更新 更多