【问题标题】:How to load next panel in a frame, which is already set with a panel using setContentPanel()如何在框架中加载下一个面板,该面板已经使用 setContentPanel() 设置了面板
【发布时间】:2012-04-09 10:39:17
【问题描述】:

我有一个 JFrame 类和两个 JPanel 类。一开始我想在调用Jframe main()时添加Panel1,当点击Panel1中的“Next>”按钮时,想打开Panel2。

现在我正在尝试运行 JFrame,它通过调用 jFrameObj.setContentPane(Panel1) 打开 Panel1。后来我的控制移动到 Panel1,现在我怎么能在同一个 jFrameObj 上做 setContentPane(Panel2) ?

这是我的功能的正确方法吗?如果有其他方法,请推荐我?

【问题讨论】:

  • 您可以使用CardLayout 来完成此任务。
  • 谁能告诉我如何根据我的要求或目的使用卡片布局?
  • 请从@Howard 链接的教程开始。 1+ 给他。
  • 感谢您的回复。我没有使用向导,只使用 JPanels 和 JFrame。有人知道仅在 JFrame(一个带有 main() 的类文件)和一组 JPanel(每个 JPanel 的类文件)之间使用卡片布局的详细信息吗?

标签: swing jframe jpanel next


【解决方案1】:

这是一个简单的程序,说明了 CardLayout 用于所需任务的用法。您可能还想看看这个article(从 2005 年开始,所以有些事情可能已经改变)。

import java.awt.*;
import javax.swing.*;

public class CardLayoutTestApplet extends JApplet {

    @Override
    public void init() {
        final Container pane = getContentPane();
        final CardLayout paneLayout = new CardLayout();

        JPanel panel1 = new JPanel();
        JButton button1 = new JButton("Next>>");
        panel1.add(button1);

        button1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                paneLayout.show(pane, "Card2");
            }
        });

        JPanel panel2 = new JPanel();
        panel2.add(new JLabel("Second Panel"));

        pane.setLayout(paneLayout);
        pane.add(panel1, "Card1");
        pane.add(panel2, "Card2");
    }
}

【讨论】:

  • 很好的答案。 +1但我很好奇,为什么要包含在小程序中?顺便说一句 - 你知道直接从源代码(不使用 HTML)使用 appletviewer 启动小程序的技巧吗?
  • @AndrewThompson Applet 非常适合我这样简单的测试应用程序。它们可以直接在 Eclipse 中启动,不需要任何额外的 main 或 invokeLater...
  • “它们可以直接在 Eclipse 中启动,不需要任何额外的 main 或 invokeLater。” 我怀疑你对 invokeLater() 的看法是错误的,我隐约记得看到Sun 的某些人坚持认为,尽管这是建议,但它不再是正确的——applet 和框架都需要它。话虽如此,我经常忽略它。在一个相关的问题上,如果你喜欢这种便利,你会 love this 小把戏。 ;)
猜你喜欢
  • 2012-01-16
  • 2021-12-20
  • 1970-01-01
  • 2015-07-22
  • 1970-01-01
  • 1970-01-01
  • 2011-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多